[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440710141255l3a02c50eja7b4b1b77aa8c1d8@mail.gmail.com>
Date: Sun, 14 Oct 2007 12:55:18 -0700
From: "Yinghai Lu" <yhlu.kernel@...il.com>
To: "Manfred Spraul" <manfred@...orfullife.com>
Cc: "Jeff Garzik" <jgarzik@...ox.com>,
"Ayaz Abdulla" <aabdulla@...dia.com>,
nedev <netdev@...r.kernel.org>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>,
"David Miller" <davem@...emloft.net>,
"Andrew Morton" <akpm@...ux-foundation.org>
Subject: Re: MSI interrupts and disable_irq
On 10/14/07, Manfred Spraul <manfred@...orfullife.com> wrote:
> Yinghai Lu wrote:
> > On 10/13/07, Manfred Spraul <manfred@...orfullife.com> wrote:
> >
> >> Someone around with a MSI capable board? The forcedeth driver does
> >> dev->irq = pci_dev->irq
> >> in nv_probe(), especially before pci_enable_msi().
> >> Does pci_enable_msi() change pci_dev->irq? Then we would disable the
> >> wrong interrupt....
> >>
> >
> > the request_irq==>setup_irq will make dev->irq = pci_dev->irq.
> >
> >
> Where is that?
in nv_request_irq
if ((ret = pci_enable_msi(np->pci_dev)) == 0) {
np->msi_flags |= NV_MSI_ENABLED;
if (request_irq(np->pci_dev->irq, handler,
IRQF_SHARED, dev->name, dev) != 0) {
in request_irq
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id)
...
action->dev_id = dev_id;
...
retval = setup_irq(irq, action);
in setup_irq
int setup_irq(unsigned int irq, struct irqaction *new)
....
new->irq = irq;
it seems I missed that here new is irqaction instead of net_dev.
YH
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists