mbox series

[net-next,v2,0/3] Deadlock no more in LAN95xx

Message ID cover.1656707954.git.lukas@wunner.de (mailing list archive)
Headers show
Series Deadlock no more in LAN95xx | expand

Message

Lukas Wunner July 1, 2022, 8:47 p.m. UTC
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@wunner.de/

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(-)

Comments

patchwork-bot+netdevbpf@kernel.org July 4, 2022, 9:50 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri, 1 Jul 2022 22:47:50 +0200 you wrote:
> 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).
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/3] usbnet: smsc95xx: Fix deadlock on runtime resume
    https://git.kernel.org/netdev/net-next/c/7b960c967f2a
  - [net-next,v2,2/3] usbnet: smsc95xx: Clean up nopm handling
    https://git.kernel.org/netdev/net-next/c/3147242980c5
  - [net-next,v2,3/3] usbnet: smsc95xx: Clean up unnecessary BUG_ON() upon register access
    https://git.kernel.org/netdev/net-next/c/03b3df43ce1f

You are awesome, thank you!