[lkml]   [2007]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: MSI interrupts and disable_irq
    On 10/13/07, Manfred Spraul <> wrote:
    > Jeff Garzik wrote:
    > >
    > > I think the scenario you outline is an illustration of the approach's
    > > fragility: disable_irq() is a heavy hammer that originated with INTx,
    > > and it relies on a chip-specific disable method (kernel/irq/manage.c)
    > > that practically guarantees behavior will vary across MSI/INTx/etc.
    > >
    > I checked the code: IRQ_DISABLE is implemented in software, i.e.
    > handle_level_irq() only calls handle_IRQ_event() [and then the nic irq
    > handler] if IRQ_DISABLE is not set.
    > OTHO: The last trace looks as if nv_do_nic_poll() is interrupted by an irq.
    > Perhaps something corrupts dev->irq? The irq is requested with
    > request_irq(np->pci_dev->irq, handler, IRQF_SHARED, dev->name, dev)
    > and disabled with
    > disable_irq_lockdep(dev->irq);
    > 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.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-10-14 08:01    [W:0.023 / U:145.744 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site