diff options
author | 2025-04-01 10:45:40 +0200 | |
---|---|---|
committer | 2025-04-11 16:27:32 +0200 | |
commit | 1fdc4dca350c0b8ada0b8ebf212504e1ad55e511 (patch) | |
tree | 49a9b776db1a7745018a5997d6dfd0d9b89e485a | |
parent | USB: wdm: close race between wdm_open and wdm_wwan_port_stop (diff) | |
download | wireguard-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.c | 2 |
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); } |