]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
authorOliver Neukum <oneukum@suse.com>
Tue, 1 Apr 2025 08:45:40 +0000 (10:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Apr 2025 14:27:32 +0000 (16:27 +0200)
wdm_wwan_port_tx_complete is called from a completion
handler with irqs disabled and possible in IRQ context
usb_autopm_put_interface can take a mutex.
Hence usb_autopm_put_interface_async must be used.

Fixes: cac6fb015f71 ("usb: class: cdc-wdm: WWAN framework integration")
Cc: stable <stable@kernel.org>
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://lore.kernel.org/r/20250401084749.175246-4-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-wdm.c

index 9c686751ddc10e90dfe761e7143b602d0563f606..fc34a54126904dc2b1668e17e380724c62f34922 100644 (file)
@@ -879,7 +879,7 @@ static void wdm_wwan_port_tx_complete(struct urb *urb)
        struct sk_buff *skb = urb->context;
        struct wdm_device *desc = skb_shinfo(skb)->destructor_arg;
 
-       usb_autopm_put_interface(desc->intf);
+       usb_autopm_put_interface_async(desc->intf);
        wwan_port_txon(desc->wwanp);
        kfree_skb(skb);
 }