summaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2006-10-10 16:09:40 -0500
committerJeff Garzik <jeff@garzik.org>2006-10-11 04:04:26 -0400
commitb21606a773faffc2b3ec326325c433bdf37ecbdf (patch)
tree59bfbf079f3770ead9e3a5eae777d0f972ddc7e9 /drivers/net/spider_net.c
parent98b9040c747e50fe02ad616c9d5fee9aa4017cd1 (diff)
[PATCH] powerpc/cell spidernet incorrect offset
Bugfix -- the rx chain is in memory after the tx chain -- the offset being used was wrong, resulting in memory corruption when the size of the rx and tx rings weren't exactly the same. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Cc: James K Lewis <jklewis@us.ibm.com> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 0eeff1add88..d779a0b9d45 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1628,8 +1628,10 @@ spider_net_open(struct net_device *netdev)
if (spider_net_init_chain(card, &card->tx_chain, card->descr,
PCI_DMA_TODEVICE, card->tx_desc))
goto alloc_tx_failed;
+
+ /* rx_chain is after tx_chain, so offset is descr + tx_count */
if (spider_net_init_chain(card, &card->rx_chain,
- card->descr + card->rx_desc,
+ card->descr + card->tx_desc,
PCI_DMA_FROMDEVICE, card->rx_desc))
goto alloc_rx_failed;