ag71xx: fix a memory corruption bug that happens if you flood the interface with packets while it's being brought down fixes boot time crashes under load reported by matteo
SVN-Revision: 22054
This commit is contained in:
parent
ce95b395a2
commit
89da22d1ea
1 changed files with 6 additions and 0 deletions
|
@ -454,6 +454,12 @@ static void ag71xx_dma_reset(struct ag71xx *ag)
|
||||||
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
|
ag71xx_wr(ag, AG71XX_REG_RX_CTRL, 0);
|
||||||
ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
|
ag71xx_wr(ag, AG71XX_REG_TX_CTRL, 0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* give the hardware some time to really stop all rx/tx activity
|
||||||
|
* clearing the descriptors too early causes random memory corruption
|
||||||
|
*/
|
||||||
|
mdelay(1);
|
||||||
|
|
||||||
/* clear descriptor addresses */
|
/* clear descriptor addresses */
|
||||||
ag71xx_wr(ag, AG71XX_REG_TX_DESC, 0);
|
ag71xx_wr(ag, AG71XX_REG_TX_DESC, 0);
|
||||||
ag71xx_wr(ag, AG71XX_REG_RX_DESC, 0);
|
ag71xx_wr(ag, AG71XX_REG_RX_DESC, 0);
|
||||||
|
|
Loading…
Reference in a new issue