summaryrefslogtreecommitdiff
path: root/drivers/usb/class
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.com>2025-04-01 10:45:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-05-02 07:44:33 +0200
commit6261b99ef0ed18836ce118bdbf91991e0d2462ed (patch)
tree1e0e685b6cf8bb5fda2feebc393c98f92fb6330e /drivers/usb/class
parentb02a3fef3e8c8fe5a0a266f7a14f38cc608fb167 (diff)
downloadlinux-6261b99ef0ed18836ce118bdbf91991e0d2462ed.tar.gz
linux-6261b99ef0ed18836ce118bdbf91991e0d2462ed.tar.bz2
linux-6261b99ef0ed18836ce118bdbf91991e0d2462ed.zip
USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
commit 1fdc4dca350c0b8ada0b8ebf212504e1ad55e511 upstream. 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>
Diffstat (limited to 'drivers/usb/class')
-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 a90986c3fa61..481017d1ff3e 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);
}