aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch')
-rw-r--r--target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch b/target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch
deleted file mode 100644
index 3a67297df0..0000000000
--- a/target/linux/rb532/patches-4.4/100-korina_fix_napi_disable.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 5833532b49820aa221248f296c207cc50d20ca2d Mon Sep 17 00:00:00 2001
-From: Florian Fainelli <f.fainelli@gmail.com>
-Date: Fri, 23 Dec 2016 19:36:31 -0800
-Subject: [PATCH net] net: korina: Fix NAPI versus resources freeing
-
-Commit beb0babfb77e ("korina: disable napi on close and restart")
-introduced calls to napi_disable() that were missing before,
-unfortunately this leaves a small window during which NAPI has a chance
-to run, yet we just freed resources since korina_free_ring() has been
-called:
-
-Fix this by disabling NAPI first then freeing resource, and make sure
-that we also cancel the restart taks before doing the resource freeing.
-
-Fixes: beb0babfb77e ("korina: disable napi on close and restart")
-Reported-by: Alexandros C. Couloumbis <alex@ozo.com>
-Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
----
- drivers/net/ethernet/korina.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
---- a/drivers/net/ethernet/korina.c
-+++ b/drivers/net/ethernet/korina.c
-@@ -900,10 +900,10 @@ static void korina_restart_task(struct w
- DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR,
- &lp->rx_dma_regs->dmasm);
-
-- korina_free_ring(dev);
--
- napi_disable(&lp->napi);
-
-+ korina_free_ring(dev);
-+
- if (korina_init(dev) < 0) {
- printk(KERN_ERR "%s: cannot restart device\n", dev->name);
- return;
-@@ -1064,12 +1064,12 @@ static int korina_close(struct net_devic
- tmp = tmp | DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR;
- writel(tmp, &lp->rx_dma_regs->dmasm);
-
-- korina_free_ring(dev);
--
- napi_disable(&lp->napi);
-
- cancel_work_sync(&lp->restart_task);
-
-+ korina_free_ring(dev);
-+
- free_irq(lp->rx_irq, dev);
- free_irq(lp->tx_irq, dev);
- free_irq(lp->ovr_irq, dev);