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