[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)

On 01/26/2012 10:41 AM, Jonathan Nieder wrote:
tags 652056 + patch moreinfo

AymanHotmail wrote:

Is it also a kernel BUG at [...]/net/core/dev.c:3719, like the
original one, and is the backtrace the same?
Well according to Image_02, it give a kernel BUG at
[...]/net/core/dev.c:3831 , and the backtrace is the same.
Thanks much.  Can you try this patch (against a sid or upstream
3.2.1 kernel)?

See [1] for instructions.

[1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html

commit b189e810619a
Author: françois romieu<romieu@fr.zoreil.com>
Date:   Sun Jan 8 13:41:33 2012 +0000

     8139cp: fix missing napi_gro_flush.

     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>

diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
index cc6b391479ca..abc79076f867 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);
  		cpw16_f(IntrMask, cp_intr_mask);

I'm sorry, I tried but it was overwhelming for me, I downloaded the source and lost it between steps 4.2.4 and 4.2.5. I'm still novice generally on linux, so I can't test the patch, except if there is already build kernel with the patch.
Again thanks for your help and patience.

Take care

Reply to: