Re: Avoid deadlock situation due to use of xmit_lock

From: David Miller
Date: Tue Dec 06 2016 - 10:06:14 EST


From: Lino Sanfilippo <LinoSanfilippo@xxxxxx>
Date: Sat, 3 Dec 2016 00:06:04 +0100

> after stumbling over a potential deadlock situation in the altera driver
> (see http://marc.info/?l=linux-netdev&m=148054615230447&w=2), I checked
> all other ethernet drivers for the same issue and actually found it in 2
> more, namely stmmac, and sxgbe. Please see the commit messages for a
> description of the problem.
> These 2 patches fix the concerning drivers.

First of all, I don't want to apply these patches without proper testing
and ACKs from the individual driver maintainers.

For both of these drivers, this situation only exists because the TX
path uses the unnecessary ->tx_lock. This private lock should be
removed completely and the driver should use the lock the mid-layer
already holds in the transmit path and take it in the TX reclaim path
instead of the private ->tx_lock.