diff options
Diffstat (limited to 'target/linux/rb532/patches-2.6.27/017-korina_fix_loop_back_rx_desc.patch')
-rw-r--r-- | target/linux/rb532/patches-2.6.27/017-korina_fix_loop_back_rx_desc.patch | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/target/linux/rb532/patches-2.6.27/017-korina_fix_loop_back_rx_desc.patch b/target/linux/rb532/patches-2.6.27/017-korina_fix_loop_back_rx_desc.patch deleted file mode 100644 index 0484f2cbe..000000000 --- a/target/linux/rb532/patches-2.6.27/017-korina_fix_loop_back_rx_desc.patch +++ /dev/null @@ -1,36 +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(-) - -diff --git a/drivers/net/korina.c b/drivers/net/korina.c -index 1d6e48e..67fbdf4 100644 ---- a/drivers/net/korina.c -+++ b/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; --- -1.5.6.4 - - |