Bug#270376: PCMCIA Nic stops working after upgrading to 2.6.6/7/8

Daniel Ritz daniel.ritz at gmx.ch
Sat Apr 9 16:00:10 EDT 2005


On Saturday 09 April 2005 05:24, Jefferson Cowart wrote:
> Looks like I may have spoken a bit too soon. The problem is partially fixed,
> but I'm still having a few problems. After the system was up I ran cardctl
> eject 0 to stop and let me remove my Ethernet card and I got the follow
> error:
> 
> eth0: no IPv6 routers present
> irq 10: nobody cared!
>  [<c01297b5>] __report_bad_irq+0x31/0x77
>  [<c012985f>] note_interrupt+0x4c/0x71
>  [<c0129476>] __do_IRQ+0x93/0xbd
>  [<c0104b35>] do_IRQ+0x19/0x24
>  [<c01038ba>] common_interrupt+0x1a/0x20
>  [<c01189a4>] __do_softirq+0x2c/0x7d
>  [<c0118a17>] do_softirq+0x22/0x26
>  [<c0104b3a>] do_IRQ+0x1e/0x24
>  [<c01038ba>] common_interrupt+0x1a/0x20
>  [<c015f4b8>] load_elf_binary+0x236/0xaba
>  [<c0124172>] autoremove_wake_function+0x0/0x3a
>  [<c014862f>] kernel_read+0x38/0x41
>  [<c0148f48>] search_binary_handler+0x71/0x19c
>  [<c015e934>] load_script+0x1c8/0x1d8
>  [<c015fca7>] load_elf_binary+0xa25/0xaba
>  [<c012dcab>] __alloc_pages+0x32c/0x338
>  [<c0198562>] copy_from_user+0x3a/0x60
>  [<c0148281>] copy_strings+0x178/0x1b7
>  [<c0148f48>] search_binary_handler+0x71/0x19c
>  [<c01491d7>] do_execve+0x164/0x1f9
>  [<c0101946>] sys_execve+0x2b/0x59
>  [<c0102ed3>] syscall_call+0x7/0xb
> handlers:
> [<c89206f7>] (yenta_interrupt+0x0/0x27 [yenta_socket])
> [<c89206f7>] (yenta_interrupt+0x0/0x27 [yenta_socket])
> [<c893ee46>] (el3_interrupt+0x0/0x1db [3c574_cs])
> Disabling IRQ #10
> 

looks more like a bug in the 3c574_cs driver. can you try the attached
patch? if it has no negative side effects i push it upstream.
(i don't know that driver and i have no doc of the chip. it just seems
 to be an obvious bug)

> Subsequent attempts to replicate the error have been unsuccessful, so it
> doesn't appear to be a big problem.
> 
> On a related note now my second NIC works so it looks like they were indeed
> the same bug (or at least a related one).

yep, the same.

> 
> 
> ----------------
> Thanks
> Jefferson Cowart
> Jeff at cowart.net   
> 

rgds
-daniel

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

[PATCH] 3c574_cs: disable interrupts in el3_close

3c574_cs forgets to disable interrupts during el3_close().
fix it by doing what 3c59x does.

Signed-off-by: Daniel Ritz <daniel.ritz at gmx.ch>

--- 1.40/drivers/net/pcmcia/3c574_cs.c	2005-01-25 22:50:25 +01:00
+++ edited/drivers/net/pcmcia/3c574_cs.c	2005-04-09 21:49:02 +02:00
@@ -1274,6 +1274,9 @@
 		spin_lock_irqsave(&lp->window_lock, flags);
 		update_stats(dev);
 		spin_unlock_irqrestore(&lp->window_lock, flags);
+
+		/* force interrupts off */
+		outw(SetIntrEnb | 0x0000, ioaddr + EL3_CMD);
 	}
 
 	link->open--;




More information about the linux-pcmcia mailing list