linux/drivers/net/usb
Nikola Z. Ivanov 069c8f5aeb net: usb: aqc111: Do not perform PM inside suspend callback
syzbot reports "task hung in rpm_resume"

This is caused by aqc111_suspend calling
the PM variant of its write_cmd routine.

The simplified call trace looks like this:

rpm_suspend()
  usb_suspend_both() - here udev->dev.power.runtime_status == RPM_SUSPENDING
    aqc111_suspend() - called for the usb device interface
      aqc111_write32_cmd()
        usb_autopm_get_interface()
          pm_runtime_resume_and_get()
            rpm_resume() - here we call rpm_resume() on our parent
              rpm_resume() - Here we wait for a status change that will never happen.

At this point we block another task which holds
rtnl_lock and locks up the whole networking stack.

Fix this by replacing the write_cmd calls with their _nopm variants

Reported-by: syzbot+48dc1e8dfc92faf1124c@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=48dc1e8dfc92faf1124c
Fixes: e58ba4544c ("net: usb: aqc111: Add support for wake on LAN by MAGIC packet")
Signed-off-by: Nikola Z. Ivanov <zlatistiv@gmail.com>
Link: https://patch.msgid.link/20260313141643.1181386-1-zlatistiv@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-03-17 13:36:12 +01:00
..
Kconfig net: usb: sr9700: remove code to drive nonexistent multicast filter 2026-02-03 19:42:15 -08:00
Makefile
aqc111.c net: usb: aqc111: Do not perform PM inside suspend callback 2026-03-17 13:36:12 +01:00
aqc111.h
asix.h net: usb: remove unnecessary get_drvinfo code and driver versions 2026-01-30 17:44:18 -08:00
asix_common.c net: usb: remove unnecessary get_drvinfo code and driver versions 2026-01-30 17:44:18 -08:00
asix_devices.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ax88172a.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ax88179_178a.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
catc.c net: usb: catc: enable basic endpoint checking 2026-02-17 11:53:36 +01:00
cdc-phonet.c
cdc_eem.c
cdc_ether.c cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk 2025-03-17 21:25:25 +01:00
cdc_mbim.c net: usb: cdc_mbim: fix Telit Cinterion FE990A name 2025-02-28 17:55:02 -08:00
cdc_ncm.c net: usb: cdc_ncm: add ndpoffset to NDP32 nframes bounds check 2026-03-16 20:14:48 -07:00
cdc_subset.c net: usb: delete extra space and tab in blank line 2022-07-28 21:48:20 -07:00
ch9200.c net: ch9200: fix uninitialised access during mii_nway_restart 2025-05-28 19:10:04 -07:00
cx82310_eth.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dm9601.c net: usb: introduce usbnet_mii_ioctl helper function 2026-02-03 19:41:19 -08:00
gl620a.c usbnet: gl620a: fix endpoint checking in genelink_bind() 2025-02-27 11:35:10 +01:00
hso.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
huawei_cdc_ncm.c
int51x1.c net: usb: int51x1: use usbnet_cdc_update_filter 2026-01-27 17:55:32 -08:00
ipheth.c usbnet: ipheth: document scope of NCM implementation 2025-01-28 12:16:32 +01:00
kalmia.c net: usb: kalmia: validate USB endpoints 2026-02-25 18:56:43 -08:00
kaweth.c net: usb: kaweth: validate USB endpoints 2026-02-25 18:58:05 -08:00
lan78xx.c net: usb: lan78xx: fix WARN in __netif_napi_del_locked on disconnect 2026-03-09 19:48:33 -07:00
lan78xx.h net: usb: lan78xx: fix silent drop of packets with checksum errors 2026-03-09 19:48:33 -07:00
lg-vl600.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mcs7830.c net: usb: introduce usbnet_mii_ioctl helper function 2026-02-03 19:41:19 -08:00
net1080.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
pegasus.c Including fixes from IPsec, Bluetooth and netfilter 2026-02-26 08:00:13 -08:00
pegasus.h
plusb.c usb: plusb: remove unused pl_clear_QuickLink_features function 2023-03-20 10:16:27 +00:00
qmi_wwan.c qmi_wwan: allow max_mtu above hard_mtu to control rx_urb_size 2026-03-06 16:31:41 -08:00
r8152.c net: usb: r8152: add TRENDnet TUC-ET2G 2026-02-27 19:27:31 -08:00
r8153_ecm.c cdc_ether|r8152: ThinkPad Hybrid USB-C/A Dock quirk 2025-03-17 21:25:25 +01:00
rndis_host.c Revert "rndis_host: Flag RNDIS modems as WWAN devices" 2025-04-25 18:46:13 -07:00
rtl8150.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
sierra_net.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsc75xx.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
smsc75xx.h
smsc95xx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsc95xx.h
sr9700.c net: usb: sr9700: remove code to drive nonexistent multicast filter 2026-02-03 19:42:15 -08:00
sr9700.h net: usb: sr9700: remove code to drive nonexistent multicast filter 2026-02-03 19:42:15 -08:00
sr9800.c net: usb: introduce usbnet_mii_ioctl helper function 2026-02-03 19:41:19 -08:00
sr9800.h net: usb: remove unnecessary get_drvinfo code and driver versions 2026-01-30 17:44:18 -08:00
usbnet.c qmi_wwan: allow max_mtu above hard_mtu to control rx_urb_size 2026-03-06 16:31:41 -08:00
zaurus.c USB: zaurus: Add ID for A-300/B-500/C-700 2023-08-01 14:44:27 -07:00