mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
korina: fix loop back of receive descriptors
After the last loop iteration, i has the value RC32434_NUM_RDS and therefore leads to an index overflow when used afterwards to address the last element. This is yet another another bug introduced when rewriting parts of the driver for upstream preparation, as the original driver used 'RC32434_NUM_RDS - 1' instead. Signed-off-by: Phil Sutter <[email protected]> Acked-by: Florian Fainelli <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
eed087e367
commit
6a2fe9834e
1 changed files with 5 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue