Bug#321419: linux-image-2.6.12-1-686: irq11 makes eth0 problems (Was: Re: Bug#303550: kernel-image-2.6.11-1-686: irq11 makes eth0 problems)

Daniel Ritz daniel.ritz at gmx.ch
Wed Aug 17 07:59:45 EDT 2005


hi mike

[ please don't strip the cc list. thanks ]

the patch is against 2.6.13-rc6. if you want to try with an older kernel
you have to patch the file drivers/pcmcia/cs.c, function pcmcia_request_irq()

but i don't think it will help in your case. try a 2.6.13-rc6 kernel instead.

rgds
-daniel

On Wednesday 17 August 2005 02.26, Daniel Ritz wrote:
> hi
> 
> On Tuesday 16 August 2005 22.47, Philippe Bourcier wrote:
> > 
> >   I tried latest debian 2.6.12 kernel; see:
> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=321419
> > 
> > irq 11: nobody cared!
> >  [<c01388fa>] __report_bad_irq+0x2a/0xa0
> >  [<c013836d>] handle_IRQ_event+0x3d/0x70
> >  [<c0138a12>] note_interrupt+0x82/0xa0
> >  [<c0138490>] __do_IRQ+0xf0/0x100
> >  [<c0105729>] do_IRQ+0x19/0x30
> >  [<c0103ada>] common_interrupt+0x1a/0x20
> >  [<c011f2ae>] __do_softirq+0x2e/0xa0
> >  [<c011f346>] do_softirq+0x26/0x30
> >  [<c010572e>] do_IRQ+0x1e/0x30
> >  [<c0103ada>] common_interrupt+0x1a/0x20
> > handlers:
> > [<c8cddea0>] (usb_hcd_irq+0x0/0x80 [usbcore])
> > [<c8d00990>] (yenta_interrupt+0x0/0x40 [yenta_socket])
> > [<c8d00990>] (yenta_interrupt+0x0/0x40 [yenta_socket])
> > Disabling IRQ #11
> > eth0: interrupt(s) dropped!
> > 
> >   ask more if you need,
> 
> simple question: is that card a multifunction card with ethernet and a
> modem?  i see from the dmesg that a ttyS2 pops up the same time when the
> 3c589 shows up. the problem compared to 2.4 is that the serial interface
> is assigned irq 11 when the network card is on irq 9. but on 2.4 both
> functions use irq 9 (which is correct). could you try the attached patch?
> 
> if the patch doesn't help please give me the output of cbdump and cardctl
> ident when the card is inserted and all drivers are loaded.
> 
> rgds
> -daniel
> 
> -----
> 
> [PATCH] fix pcmcia_request_irq() for multifunction card
> 
> multifunction cards need to have the same irq assigned to both functions.
> the code tries that but fails because ret is still set to CS_IN_USE
> which results in the function having the CB irq assigned. yenta_set_socket
> then just changes the irq routing to use the PCI interrupt but the first
> functions irq handler is registered on an ISA interrupt. boom.
> 
> Signed-off-by: Daniel Ritz <daniel.ritz at gmx.ch>
> 
> diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
> --- a/drivers/pcmcia/pcmcia_resource.c
> +++ b/drivers/pcmcia/pcmcia_resource.c
> @@ -831,7 +831,8 @@ int pcmcia_request_irq(struct pcmcia_dev
>  		}
>  	}
>  #endif
> -	if (ret) {
> +	/* only assign PCI irq if no IRQ already assigned */
> +	if (ret && !s->irq.AssignedIRQ) {
>  		if (!s->pci_irq)
>  			return ret;
>  		irq = s->pci_irq;
> 
> 



More information about the linux-pcmcia mailing list