[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#652056: [3.0 -> 3.1.1 regression] [ipw2100] BUG at net/core/dev.c:3719! (__napi_complete called with gro_list nonempty)



forwarded 652056 http://thread.gmane.org/gmane.linux.network/217197/focus=217203
quit

AymanHotmail wrote:

> It did reproduced the kernel panic, and repeating the same steps
> again with the patch did solve the problem (actually I'm writing
> this email running the patched one, something I couldn't do before).
> So the issue is resolved ( again hoping it doesn't matter using the
> 3.2.2 kernel and compiling an i386 deb package).

Perfect, thanks much.

It seems that the patch is already in Dave's queue for some future
stable release.  Beats me where one can find that queue.  Anyway, I
imagine it wouldn't hurt to apply it to sid in the meantime, so here's
a patch.
Index: debian/patches/bugfix/all/8139cp-fix-missing-napi_gro_flush.patch
===================================================================
--- debian/patches/bugfix/all/8139cp-fix-missing-napi_gro_flush.patch	(revision 0)
+++ debian/patches/bugfix/all/8139cp-fix-missing-napi_gro_flush.patch	(revision 0)
@@ -0,0 +1,33 @@
+From: françois romieu <romieu@fr.zoreil.com>
+Date: Sun, 8 Jan 2012 13:41:33 +0000
+Subject: 8139cp: fix missing napi_gro_flush.
+
+commit b189e810619a676e6b931a942a3e8387f3d39c21 upstream.
+
+The driver uses __napi_complete and napi_gro_receive. Without it, the
+driver hits the BUG_ON(n->gro_list) assertion hard in __napi_complete.
+
+Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
+Tested-by: Marin Glibic <zhilla2@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Tested-by: <a_morouj@hotmail.com>
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ drivers/net/ethernet/realtek/8139cp.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
+index ee5da9293ce0..aba4f676fefa 100644
+--- a/drivers/net/ethernet/realtek/8139cp.c
++++ b/drivers/net/ethernet/realtek/8139cp.c
+@@ -563,6 +563,7 @@ rx_next:
+ 		if (cpr16(IntrStatus) & cp_rx_intr_mask)
+ 			goto rx_status_loop;
+ 
++		napi_gro_flush(napi);
+ 		spin_lock_irqsave(&cp->lock, flags);
+ 		__napi_complete(napi);
+ 		cpw16_f(IntrMask, cp_intr_mask);
+-- 
+1.7.9.rc2
+
Index: debian/patches/series/base
===================================================================
--- debian/patches/series/base	(revision 18637)
+++ debian/patches/series/base	(working copy)
@@ -65,6 +65,7 @@
 + bugfix/alpha/alpha-add-io-read-write-16-32-be-functions.patch
 + features/arm/ARM-kirkwood-6282A1.patch
 + bugfix/all/net-reintroduce-missing-rcu_assign_pointer-calls.patch
++ bugfix/all/8139cp-fix-missing-napi_gro_flush.patch
 + features/all/Input-ALPS-move-protocol-information-to-Documentatio.patch
 + features/all/Input-ALPS-add-protocol-version-field-in-alps_model_.patch
 + features/all/Input-ALPS-remove-assumptions-about-packet-size.patch
Index: debian/changelog
===================================================================
--- debian/changelog	(revision 18637)
+++ debian/changelog	(working copy)
@@ -18,6 +18,9 @@
   * [alpha] Build with gcc-4.5 (Closes: #657112)
   * aufs: Update to aufs3.2-20120109 (fixes FTBFS on m68k)
 
+  [ Jonathan Nieder ]
+  * 8139cp: fix missing napi_gro_flush (Closes: #652056)
+
   [ Thorsten Glaser ]
   * [m68k] Use gcc-4.6 like (almost) all other architectures
   * Pass the cflags define as CFLAGS_KERNEL and CFLAGS_MODULE to kbuild

Reply to: