mv643xx_eth: prevent interrupt storm on ifconfig down
Contrary to what the docs say, the 'extended interrupt cause' bit in the interrupt cause register (bit 1) appears to not be maskable on at least some of the mv643xx_eth platforms, making writing zeroes to the interrupt mask register but not the extended interrupt mask register insufficient to stop interrupts from occuring. Therefore, also write zeroes to the extended interrupt mask register when shutting down the port. This fixes the interrupt storm seen on the Pegasos board when shutting down the interface. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2b448334a2
commit
fe65e70453
|
@ -2212,6 +2212,7 @@ static int mv643xx_eth_stop(struct net_device *dev)
|
||||||
struct mv643xx_eth_private *mp = netdev_priv(dev);
|
struct mv643xx_eth_private *mp = netdev_priv(dev);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
wrlp(mp, INT_MASK_EXT, 0x00000000);
|
||||||
wrlp(mp, INT_MASK, 0x00000000);
|
wrlp(mp, INT_MASK, 0x00000000);
|
||||||
rdlp(mp, INT_MASK);
|
rdlp(mp, INT_MASK);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue