Second attempt at fixing a runtime resume deadlock in the LAN95xx USB driver: In short, the driver isn't using the "nopm" register accessors in portions of its runtime resume path, causing a deadlock. I'm fixing that by auto-detecting whether nopm accessors shall be used, instead of having to explicitly call them wherever it's necessary. As a byproduct, code size shrinks significantly (see diffstat below). Back in April I submitted a first attempt which was rejected by Alan Stern: https://lore.kernel.org/all/6710d8c18ff54139cdc538763ba544187c5a0cee.1651041411.git.lukas@xxxxxxxxx/ That approach only detected whether a PM callback is running concurrently, not whether the access is performed by the PM callback. I've come up with a different approach which should resolve the objection (see patch [1/3]). Thanks! Lukas Wunner (3): usbnet: smsc95xx: Fix deadlock on runtime resume usbnet: smsc95xx: Clean up nopm handling usbnet: smsc95xx: Clean up unnecessary BUG_ON() upon register access drivers/net/usb/smsc95xx.c | 202 ++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 116 deletions(-) -- 2.36.1