Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 49266

Summary: RTL-8196 gigabit network card driver Crashes Locks Kernel system
Product: Gentoo Linux Reporter: Jonathan Wilson <Jonathan.Wilson>
Component: [OLD] Core systemAssignee: x86-kernel (DEPRECATED) <x86-kernel>
Status: RESOLVED UPSTREAM    
Severity: critical    
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
URL: http://testing.lkml.org/slashdot.php?mid=465044
Whiteboard:
Package list:
Runtime testing required: ---

Description Jonathan Wilson 2004-04-28 03:53:22 UTC
Due to a logic error, there is a loop in an interrupt handler that often goes infinite, thus locking up the entire computer.  What follows is taken from another site, could this be fix in Gentoo as it affects my system and obviously others as well.

-------------

Hi everyone,

This is a tiny patch that fixes a particularly annoying bug in the Realtek 8169 gigabit ethernet driver. Due to a logic error, there is a loop in an interrupt handler that often goes infinite, thus locking up the entire computer. The attached patch fixes the problem. 
I have patched against linux-2.6.5-rc2-bk6, however the source file in question hasn't been modified for a long time, so the patch should apply cleanly to any recent kernel version.

Cheers,
Adam.
--- linux-2.6.5-rc2-bk6/drivers/net/r8169.c	2004-03-27 17:38:03.000000000 +1000
+++ linux-2.6.5-rc2-bk6a/drivers/net/r8169.c	2004-03-31 18:45:10.000000000 +1000
@@ -33,6 +33,12 @@
 	- Copy mc_filter setup code from 8139cp
 	  (includes an optimization, and avoids set_bit use)
 
+VERSION 1.2a <2004/03/31> Adam Nielsen (a.nielsen@optushome.com.au)
+
+	"else break;" added to the if-statement in rtl8169_tx_interrupt() to prevent
+	an infinite loop and the resulting kernel lockup when the interrupt is called
+	with a dirty buffer (perhaps when there's nothing to transmit?)
+
 */
 
 #include <linux/module.h>
@@ -892,7 +898,7 @@
 			tp->Tx_skbuff[entry] = NULL;
 			dirty_tx++;
 			tx_left--;
-		}
+		} else break;
 	}
 
 	if (tp->dirty_tx != dirty_tx) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
                

Reproducible: Always
Steps to Reproduce:
1. Generate lots of TCP/IP activity
2. Run a P2P client and have a number of users download data
3.

Actual Results:  
System locks up and will not respond to any form of user input and must be reset
by hardware 

Expected Results:  
Not crash! haha, I don't know.  It should be able to handle high TCP/IP activity

N/A
Comment 1 Greg Kroah-Hartman (RETIRED) gentoo-dev 2004-04-28 11:11:55 UTC
Please send this to the net-dev mailing list, that way it will get added to the
main kernel tree

(also, no change log entry is needed for such a patch, your change comments will
show up in the kernel changelog entries...)