Look ma, I found a kernel bug!

Oh great. I have experienced random hangups of my Laptop recently, and I had absolutely no clue what caused them, even after a reboot and looking into the logfiles. Today, after another hangup/crash I think I found the problem (but not the solution):

May 16 00:08:35 localhost kernel: NETDEV WATCHDOG: eth0: transmit timed out
May 16 00:08:35 localhost kernel: sky2 eth0: tx timeout
May 16 00:08:35 localhost kernel: x45 [sky2]
May 16 00:08:35 localhost kernel:  [pg0+943960755/1069376512] sky2_poll+0x469/0x548 [sky2]
May 16 00:08:35 localhost kernel:  [pg0+953407031/1069376512] nv_kern_isr+0x31/0x63 [nvidia]
May 16 00:08:35 localhost kernel:  [net_rx_action+82/199] net_rx_action+0x52/0xc7
May 16 00:08:35 localhost kernel:  [__do_softirq+52/125] __do_softirq+0x34/0x7d
May 16 00:08:35 localhost kernel:  [do_softirq+34/38] do_softirq+0x22/0x26
May 16 00:08:35 localhost kernel:  [irq_exit+41/52] irq_exit+0x29/0x34
May 16 00:44:32 localhost syslogd 1.4.1#17.2: restart.
May 16 00:44:32 localhost kernel: klogd 1.4.1#17.2, log source = /proc/kmsg started.

Note that I could do absolutely nothing on the laptop anymore, no moving the mouse, no typing on the keyboard, no switching from X11 into a text console, no CTRL+ALT+BACKSPACE to kill X11, no CTRL+ALT+DELETE to reboot, nothing.

I think sky2 (network driver) or the NVIDIA driver may be the culprit (or a combination of both). After some searching it seems other people have/had similar problems, but not quite the same...

I guess I'll have to file a bugreport somewhere...

Linux 2.6.16 Upgrade [Update]

I have upgraded my kernel to Linux 2.6.16 today with some consequences:

  • The "SysKonnect Yukon2 support (EXPERIMENTAL)" option supports my network card just fine now, no need for external sk98lin drivers anymore (gah, I bet this URL will break in a few hours). For googling purposes: I have the following card: Ethernet controller: Marvell Technology Group Ltd. 88E8036 Fast Ethernet Controller (rev 10).
  • As I have reported before, my disk drive cannot be talked into using DMA without this kernel patch. The patch does not apply to 2.6.16 anymore, so I have fixed it. May I present: my first Linux kernel patch (IIRC), sent off to the LKML today. Let's see if this gets in the kernel...
  • The kernel now includes the ipw2200 driver (not the most recent version, though), which allows me to use my Intel PRO/Wireless 2200BG wireless network card without having to use external drivers. However, the driver does not allow you to put the card into monitor mode. The code is there, it just isn't enabled, for whatever reason. I have created a trivial patch, but it seems that someone else has already fixed this issue. Just in case anyone cares, here's my patch:

    diff -Naur linux-2.6.16.orig/drivers/net/wireless/ipw2200.c linux-2.6.16/drivers/net/wireless/ipw2200.c
    --- linux-2.6.16.orig/drivers/net/wireless/ipw2200.c    2006-03-20 06:53:29.000000000 +0100
    +++ linux-2.6.16/drivers/net/wireless/ipw2200.c 2006-03-24 01:27:15.000000000 +0100
    @@ -38,6 +38,9 @@
     #define DRV_COPYRIGHT  "Copyright(c) 2003-2005 Intel Corporation"
     #define DRV_VERSION     IPW2200_VERSION
    +#define CONFIG_IPW2200_MONITOR "y"
     #define ETH_P_80211_STATS (ETH_P_80211_RAW + 1)

    You should better copy+paste the patch from the HTML source or it might break...

  • There doesn't seem to be a loop-aes patch for 2.6.16, so I probably cannot mount my encrypted volumes. I'll try the latest release (for 2.6.15-*) tomorrow, if I'm lucky the patches still apply to 2.6.16...
  • If you have an NVIDIA graphics card, you need this cumulative patch against the 1.0-8178 NVIDIA Linux x86 drivers, or else they won't compile.

Update 2006-03-24: The loop-aes v3.1c patches apply just fine. I almost forgot to mention the NVIDIA changes...

Syndicate content