From a9a5ee4df746dc95b40d21bb716c23054eb337b2 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Thu, 15 Jan 2009 12:29:55 +0000 Subject: [PATCH] --- yaml --- r: 130131 b: refs/heads/master c: 6a2fe9834e578590f4a2fbe18a574465ab0e127c h: refs/heads/master i: 130129: b0c7aebdec867b4ab8e4b24c286f1c2eefc3c554 130127: 819327dc2f0ce0baf3219f313ba38eeca90ea23c v: v3 --- [refs] | 2 +- trunk/drivers/net/korina.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 654c278e5e4b..907ce9fc5b95 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eed087e367591fc08490d7c6c2779b4b72c8f20c +refs/heads/master: 6a2fe9834e578590f4a2fbe18a574465ab0e127c diff --git a/trunk/drivers/net/korina.c b/trunk/drivers/net/korina.c index 1d6e48e13366..67fbdf40aceb 100644 --- a/trunk/drivers/net/korina.c +++ b/trunk/drivers/net/korina.c @@ -769,11 +769,12 @@ static void korina_alloc_ring(struct net_device *dev) lp->rd_ring[i].link = CPHYSADDR(&lp->rd_ring[i+1]); } - /* loop back */ - lp->rd_ring[i].link = CPHYSADDR(&lp->rd_ring[0]); - lp->rx_next_done = 0; + /* loop back receive descriptors, so the last + * descriptor points to the first one */ + lp->rd_ring[i - 1].link = CPHYSADDR(&lp->rd_ring[0]); + lp->rd_ring[i - 1].control |= DMA_DESC_COD; - lp->rd_ring[i].control |= DMA_DESC_COD; + lp->rx_next_done = 0; lp->rx_chain_head = 0; lp->rx_chain_tail = 0; lp->rx_chain_status = desc_empty;