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