summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2026-08-21 17:45:44 +0200
committerJohan Hovold <johan@kernel.org>2026-09-08 11:00:48 +0200
commit63594e8ffe097bc0b7639936f33799a7653dded2 (patch)
tree3b29b1a5481d981ea45dbf7ba764c8f366a5baee
parent33c920f7c5952dfc42d1b8ea6efe16b1f0bb0c5b (diff)
downloadlinux-next-63594e8ffe097bc0b7639936f33799a7653dded2.tar.gz
linux-next-63594e8ffe097bc0b7639936f33799a7653dded2.zip
USB: serial: fix dynamic id driver deregistration race
Only free the dynamic ids after having deregistered the driver and removed the "new_id" attribute to avoid leaking any id added by a racing write to the attribute. Fixes: 93bacefc4cc0 ("USB serial: add dynamic id support to usb-serial core") Cc: stable@vger.kernel.org # 2.6.21 Signed-off-by: Johan Hovold <johan@kernel.org>
-rw-r--r--drivers/usb/serial/bus.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c
index 9e2a18c0b218..295c61afa44c 100644
--- a/drivers/usb/serial/bus.c
+++ b/drivers/usb/serial/bus.c
@@ -165,7 +165,7 @@ int usb_serial_bus_register(struct usb_serial_driver *driver)
void usb_serial_bus_deregister(struct usb_serial_driver *driver)
{
- free_dynids(driver);
driver_unregister(&driver->driver);
+ free_dynids(driver);
}