]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
usb: sl811-hcd: disable controller wakeup on remove
authorMyeonghun Pak <mhun512@gmail.com>
Wed, 1 Jul 2026 12:16:25 +0000 (21:16 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Jul 2026 11:34:51 +0000 (13:34 +0200)
sl811h_probe() enables the HCD controller device as a wakeup source after
usb_add_hcd() succeeds, but sl811h_remove() removes the HCD and releases
the driver resources without disabling that wakeup source.

Disable controller wakeup after usb_remove_hcd() and before usb_put_hcd()
so the wakeup source object is detached while the controller device pointer
is still available.

This issue was identified during our ongoing static-analysis research while
reviewing kernel code.

Fixes: 3c9740a117d4 ("usb: hcd: move controller wakeup setting initialization to individual driver")
Cc: stable <stable@kernel.org>
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Link: https://patch.msgid.link/20260701121625.96815-1-mhun512@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/sl811-hcd.c

index 4ae47edd4b8b4ece1a1de6229539086ac2f2165a..b044977f6f5673492fe68d452cf5744928d3f7e7 100644 (file)
@@ -1591,6 +1591,7 @@ sl811h_remove(struct platform_device *dev)
 
        remove_debug_file(sl811);
        usb_remove_hcd(hcd);
+       device_wakeup_disable(hcd->self.controller);
 
        /* some platforms may use IORESOURCE_IO */
        res = platform_get_resource(dev, IORESOURCE_MEM, 1);