]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
usb: renesas_usbhs: fix use-after-free in ISR during device removal
authorFan Wu <fanwu01@zju.edu.cn>
Tue, 3 Mar 2026 07:33:44 +0000 (07:33 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Mar 2026 15:18:16 +0000 (16:18 +0100)
commit3cbc242b88c607f55da3d0d0d336b49bf1e20412
tree85025b0f0bc48b55c4ec2e405d361255035392f8
parent14ae24cba291bddfdc296bbcbfd00cd09d0498ef
usb: renesas_usbhs: fix use-after-free in ISR during device removal

In usbhs_remove(), the driver frees resources (including the pipe array)
while the interrupt handler (usbhs_interrupt) is still registered. If an
interrupt fires after usbhs_pipe_remove() but before the driver is fully
unbound, the ISR may access freed memory, causing a use-after-free.

Fix this by calling devm_free_irq() before freeing resources. This ensures
the interrupt handler is both disabled and synchronized (waits for any
running ISR to complete) before usbhs_pipe_remove() is called.

Fixes: f1407d5c6624 ("usb: renesas_usbhs: Add Renesas USBHS common code")
Cc: stable <stable@kernel.org>
Suggested-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Fan Wu <fanwu01@zju.edu.cn>
Link: https://patch.msgid.link/20260303073344.34577-1-fanwu01@zju.edu.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/renesas_usbhs/common.c