aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.com>2025-04-01 10:45:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-04-11 16:27:32 +0200
commit1fdc4dca350c0b8ada0b8ebf212504e1ad55e511 (patch)
tree49a9b776db1a7745018a5997d6dfd0d9b89e485a
parentUSB: wdm: close race between wdm_open and wdm_wwan_port_stop (diff)
downloadwireguard-linux-1fdc4dca350c0b8ada0b8ebf212504e1ad55e511.tar.xz
wireguard-linux-1fdc4dca350c0b8ada0b8ebf212504e1ad55e511.zip
USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
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>
-rw-r--r--drivers/usb/class/cdc-wdm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index 9c686751ddc1..fc34a5412690 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -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);
}