From: Russell King <rmk+ker...@arm.linux.org.uk>
Date: Tue, 25 Aug 2015 09:49:53 +0100

> Rather than re-initialising the entire completion on every mdio access,
> use reinit_completion() which only resets the completion count.  This
> avoids possible reinitialisation of the contained spinlock and waitqueue
> while they may be in use (eg, mid-completion.)
> 
> Such an event could occur if there's a long delay in interrupt handling
> causing the mdio accessor to time out, then a second access comes in
> while the interrupt handler on a different CPU has called complete().
> Another scenario where this has been observed is while locking has
> been missing at the phy layer, allowing concurrent attempts to access
> the MDIO bus.
> 
> Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to