]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: rt2x00usb: fix devres lifetime
authorJohan Hovold <johan@kernel.org>
Fri, 27 Mar 2026 11:32:19 +0000 (12:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Apr 2026 08:35:55 +0000 (10:35 +0200)
commit 25369b22223d1c56e42a0cd4ac9137349d5a898e upstream.

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 USB anchor lifetime so that it is released on driver unbind.

Fixes: 8b4c0009313f ("rt2x00usb: Use usb anchor to manage URB")
Cc: stable@vger.kernel.org # 4.7
Cc: Vishal Thanki <vishalthanki@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/20260327113219.1313748-1-johan@kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c

index 8fd22c69855fa463c1a794eb26368a5fc4aa5696..9b193e46788638b91bbc7956c05a53526d1e59f9 100644 (file)
@@ -830,7 +830,7 @@ int rt2x00usb_probe(struct usb_interface *usb_intf,
        if (retval)
                goto exit_free_device;
 
-       rt2x00dev->anchor = devm_kmalloc(&usb_dev->dev,
+       rt2x00dev->anchor = devm_kmalloc(&usb_intf->dev,
                                        sizeof(struct usb_anchor),
                                        GFP_KERNEL);
        if (!rt2x00dev->anchor) {