]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
can: ucan: fix devres lifetime
authorJohan Hovold <johan@kernel.org>
Fri, 27 Mar 2026 10:45:20 +0000 (11:45 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 9 Apr 2026 16:20:34 +0000 (18:20 +0200)
USB drivers bind to USB interfaces and any device managed resources
should have their lifetime tied to the interface rather than parent USB
device. This avoids issues like memory leaks when drivers are unbound
without their devices being physically disconnected (e.g. on probe
deferral or configuration changes).

Fix the control message buffer lifetime so that it is released on driver
unbind.

Fixes: 9f2d3eae88d2 ("can: ucan: add driver for Theobroma Systems UCAN devices")
Cc: stable@vger.kernel.org # 4.19
Cc: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260327104520.1310158-1-johan@kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/ucan.c

index 0ea0ac75e42f9a9b8e13a01b5b23d9fa051fdcc5..ee3c1abbd063059f8d85fe2d263329ff4be8062c 100644 (file)
@@ -1397,7 +1397,7 @@ static int ucan_probe(struct usb_interface *intf,
         */
 
        /* Prepare Memory for control transfers */
-       ctl_msg_buffer = devm_kzalloc(&udev->dev,
+       ctl_msg_buffer = devm_kzalloc(&intf->dev,
                                      sizeof(union ucan_ctl_payload),
                                      GFP_KERNEL);
        if (!ctl_msg_buffer) {