summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc3
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2023-07-11 18:35:30 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-07-27 09:44:01 +0300
commit810e401b34c4c4c244d8b93b9947ea5b3d4d49f8 (patch)
treec544c6322b0fe501917db247e9b39c14761a7ad1 /drivers/usb/dwc3
parentcd5837564ff59b34fefe1d07af3442089bcfeb23 (diff)
downloadlinux-810e401b34c4c4c244d8b93b9947ea5b3d4d49f8.tar.xz
io_uring: ensure IOPOLL locks around deferred work
No direct upstream commit exists for this issue. It was fixed in 5.18 as part of a larger rework of the completion side. io_commit_cqring() writes the CQ ring tail to make it visible, but it also kicks off any deferred work we have. A ring setup with IOPOLL does not need any locking around the CQ ring updates, as we're always under the ctx uring_lock. But if we have deferred work that needs processing, then io_queue_deferred() assumes that the completion_lock is held, as it is for !IOPOLL. Add a lockdep assertion to check and document this fact, and have io_iopoll_complete() check if we have deferred work and run that separately with the appropriate lock grabbed. Cc: stable@vger.kernel.org # 5.10, 5.15 Reported-by: dghost david <daviduniverse18@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/dwc3')
0 files changed, 0 insertions, 0 deletions