diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-08-04 17:36:27 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-08-04 17:36:27 +0000 |
commit | d2aeca6b6dbb96121b823200b15b6b2beae959f0 (patch) | |
tree | 3ae86d895056e617a12082772febdde984b011a1 /target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h | |
parent | 500c3a147574fae2b953b00514b380b5adc9b097 (diff) | |
download | upstream-d2aeca6b6dbb96121b823200b15b6b2beae959f0.tar.gz upstream-d2aeca6b6dbb96121b823200b15b6b2beae959f0.tar.bz2 upstream-d2aeca6b6dbb96121b823200b15b6b2beae959f0.zip |
ag71xx: fix memory corruption issues on ar7240 on ethernet start/stop
When the DMA engine state gets corrupted due to a hardware issues, it
often won't stop rx until a full reset is issued. In that case the hardware
must keep a valid descriptor, otherwise it will write to random places in
system RAM, triggering random crashes. To fix this, keep a dummy descriptor
without a buffer that keeps the DMA engine in a sane state until the reset
is done
SVN-Revision: 27895
Diffstat (limited to 'target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h')
-rw-r--r-- | target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h index 1025bb4c49..9dcbf4a5b2 100644 --- a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h +++ b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h @@ -148,6 +148,9 @@ struct ag71xx { struct napi_struct napi; u32 msg_enable; + struct ag71xx_desc *stop_desc; + dma_addr_t stop_desc_dma; + struct ag71xx_ring rx_ring; struct ag71xx_ring tx_ring; |