diff options
Diffstat (limited to 'target/linux/rb532/patches-2.6.28/017-korina_fix_loop_back_rx_desc.patch')
-rw-r--r-- | target/linux/rb532/patches-2.6.28/017-korina_fix_loop_back_rx_desc.patch | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/target/linux/rb532/patches-2.6.28/017-korina_fix_loop_back_rx_desc.patch b/target/linux/rb532/patches-2.6.28/017-korina_fix_loop_back_rx_desc.patch deleted file mode 100644 index 5b684b40ca..0000000000 --- a/target/linux/rb532/patches-2.6.28/017-korina_fix_loop_back_rx_desc.patch +++ /dev/null @@ -1,30 +0,0 @@ -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 <n0-1@freewrt.org> ---- - drivers/net/korina.c | 9 +++++---- - 1 files changed, 5 insertions(+), 4 deletions(-) - ---- a/drivers/net/korina.c -+++ b/drivers/net/korina.c -@@ -766,11 +766,12 @@ static void korina_alloc_ring(struct net - 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; |