Re: Fw: [Bugme-new] [Bug 4223] New: sis900 kernel oop at boot
From: Jeff Garzik <hidden>
Date: 2005-08-19 08:04:55
Herbert Xu wrote:
Hi: Here is the version that moves the necessary code above register_netdev instead of using init. It's against netdev-2.6.quoted
Feb 15 18:26:20 saturno kernel: Unable to handle kernel NULL pointer dereference at virtual address 0000000e Feb 15 18:26:20 saturno kernel: printing eip: Feb 15 18:26:20 saturno kernel: e1113417 Feb 15 18:26:20 saturno kernel: *pde = 00000000 Feb 15 18:26:20 saturno kernel: Oops: 0000 [#1] Feb 15 18:26:20 saturno kernel: PREEMPT Feb 15 18:26:20 saturno kernel: Modules linked in: sis900 nvidia 8250_pci 8250 serial_core psmouse Feb 15 18:26:20 saturno kernel: CPU: 0 Feb 15 18:26:20 saturno kernel: EIP: 0060:[<e1113417>] Tainted: P VLI Feb 15 18:26:20 saturno kernel: EFLAGS: 00010296 (2.6.10-M7) Feb 15 18:26:20 saturno kernel: EIP is at sis900_check_mode+0x17/0xa0 [sis900]OK, this happened because we got preempted before sis900_mii_probe finished setting the sis_priv->mii. Theoretically this can happen with SMP as well but I suppose the number of SMP machines with sis900 is fairly small. Anyway, the fix is to make sure that sis900_mii_probe is done before the device can be opened. This patch does it by moving the setup before register_netdevice. Since the netdev name is not available before register_netdev, I've changed the relevant printk's to use pci_name instead. Note that one of those printk's may be called after register_netdev as well. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Is this patch still needed? Jeff