aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2009-03-15 12:56:39 +0000
committerFlorian Fainelli <florian@openwrt.org>2009-03-15 12:56:39 +0000
commit9fd0e3c878fcba180278f355efdce6d44a3386e0 (patch)
tree66f5f78c1b6ca8383418b4cd3f5444c4f4716459 /target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch
parent7d2a736b8939efa0082b5efedcb7428fa39f83a8 (diff)
downloadupstream-9fd0e3c878fcba180278f355efdce6d44a3386e0.tar.gz
upstream-9fd0e3c878fcba180278f355efdce6d44a3386e0.tar.bz2
upstream-9fd0e3c878fcba180278f355efdce6d44a3386e0.zip
[rb532] add 2.6.28 patches and kernel config
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14884 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch')
-rw-r--r--target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch b/target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch
new file mode 100644
index 0000000000..4eec6fd05d
--- /dev/null
+++ b/target/linux/rb532/patches-2.6.28/009-korina_disable_napi_on_close_and_restart.patch
@@ -0,0 +1,33 @@
+Without this the driver will crash when the NIC is being restarted.
+
+Signed-off-by: Phil Sutter <n0-1@freewrt.org>
+---
+ drivers/net/korina.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/korina.c b/drivers/net/korina.c
+index e30c2f4..65b8487 100644
+--- a/drivers/net/korina.c
++++ b/drivers/net/korina.c
+@@ -904,6 +904,8 @@ static int korina_restart(struct net_device *dev)
+
+ korina_free_ring(dev);
+
++ napi_disable(&lp->napi);
++
+ ret = korina_init(dev);
+ if (ret < 0) {
+ printk(KERN_ERR DRV_NAME "%s: cannot restart device\n",
+@@ -1070,6 +1072,8 @@ static int korina_close(struct net_device *dev)
+
+ korina_free_ring(dev);
+
++ napi_disable(&lp->napi);
++
+ free_irq(lp->rx_irq, dev);
+ free_irq(lp->tx_irq, dev);
+ free_irq(lp->ovr_irq, dev);
+--
+1.5.6.4
+
+