aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
diff options
context:
space:
mode:
authorAlan Stern <[email protected]>2025-08-25 16:00:22 +0000
committerGreg Kroah-Hartman <[email protected]>2025-09-06 13:29:50 +0000
commit8d63c83d8eb922f6c316320f50c82fa88d099bea (patch)
treee9e848dacd6164345a64b3fc43b945c232dc7602 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
parentxhci: fix memory leak regression when freeing xhci vdev devices depth first (diff)
downloadkernel-8d63c83d8eb922f6c316320f50c82fa88d099bea.tar.gz
kernel-8d63c83d8eb922f6c316320f50c82fa88d099bea.zip
USB: gadget: dummy-hcd: Fix locking bug in RT-enabled kernels
Yunseong Kim and the syzbot fuzzer both reported a problem in RT-enabled kernels caused by the way dummy-hcd mixes interrupt management and spin-locking. The pattern was: local_irq_save(flags); spin_lock(&dum->lock); ... spin_unlock(&dum->lock); ... // calls usb_gadget_giveback_request() local_irq_restore(flags); The code was written this way because usb_gadget_giveback_request() needs to be called with interrupts disabled and the private lock not held. While this pattern works fine in non-RT kernels, it's not good when RT is enabled. RT kernels handle spinlocks much like mutexes; in particular, spin_lock() may sleep. But sleeping is not allowed while local interrupts are disabled. To fix the problem, rewrite the code to conform to the pattern used elsewhere in dummy-hcd and other UDC drivers: spin_lock_irqsave(&dum->lock, flags); ... spin_unlock(&dum->lock); usb_gadget_giveback_request(...); spin_lock(&dum->lock); ... spin_unlock_irqrestore(&dum->lock, flags); This approach satisfies the RT requirements. Signed-off-by: Alan Stern <[email protected]> Cc: stable <[email protected]> Fixes: b4dbda1a22d2 ("USB: dummy-hcd: disable interrupts during req->complete") Reported-by: Yunseong Kim <[email protected]> Closes: <https://lore.kernel.org/linux-usb/[email protected]/> Reported-by: [email protected] Closes: <https://lore.kernel.org/linux-usb/[email protected]/> Tested-by: [email protected] CC: Sebastian Andrzej Siewior <[email protected]> CC: [email protected] Reviewed-by: Sebastian Andrzej Siewior <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions