OSDN Git Service

net: dsa: mv88e6xxx: shorten the locked section in mv88e6xxx_g1_atu_prob_irq_thread_fn()
authorHans J. Schultz <netdev@kapio-technology.com>
Sun, 8 Jan 2023 09:48:48 +0000 (10:48 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 10 Jan 2023 10:58:39 +0000 (11:58 +0100)
commit0c34aff523c7498bc0c420ea985b1bb8ce463839
treecf3594fa1e9f9fa38475e8899e545803cf9f356c
parente06a9af067b3a6eeb1e116360f6f8bcef96a90c3
net: dsa: mv88e6xxx: shorten the locked section in mv88e6xxx_g1_atu_prob_irq_thread_fn()

As only the hardware access functions up til and including
mv88e6xxx_g1_atu_mac_read() called under the interrupt handler
need to take the chip lock, we release the chip lock after this call.
The follow up code that handles the violations can run without the
chip lock held.
In further patches, the violation handler function will even be
incompatible with having the chip lock held. This due to an AB/BA
ordering inversion with rtnl_lock().

Signed-off-by: Hans J. Schultz <netdev@kapio-technology.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/dsa/mv88e6xxx/global1_atu.c