Messages in this thread | | | Date | Wed, 7 Jan 2009 14:13:48 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH] x86 PCI: Do not use interrupt links for devices using MSI-X |
| |
* Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> On Monday, January 5, 2009 5:04 am Ingo Molnar wrote: > > * Rafael J. Wysocki <rjw@sisk.pl> wrote: > > > From: Rafael J. Wysocki <rjw@sisk.pl> > > > > > > pcibios_enable_device() and pcibios_disable_device() don't handle > > > IRQs for devices that have MSI enabled and it should tread the > > > > s/tread/treat > > > > > devices with MSI-X enabled in the same way. > > > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > > > --- > > > arch/x86/pci/common.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > looks good - Jesse, what do you think? > > Yeah, seems obviously correct, I'll queue it up. > > > Rafael, i'm curious is this in response to some regression/bug? Did some > > box or driver get confused by us enabling/disabling the GSI? Some IRQ > > flood perhaps? > > > > btw., there's a small observation: > > > + if (!dev->msi_enabled && !dev->msix_enabled) > > > > maybe a "pci_has_gsi_irq()" wrapper would make these checks cleaner and > > would make things more robust, should there be any new IRQ delivery method > > be introduced in the future? > > pci_has_msi_irq surely? Otherwise we'll catch pretty much everything? Or did > you mean !pci_has_gsi_irq() here instead?
Well - here the check is: "if (not MSI or MSIX)" in essence. I thought that it might be confusing to call it _msi() as well, so we could approach it via the inverse space: general system interrupts (GSIs) - which are device irqs that are neither MSI nor MSIX.
But if pci_has_msi_irq() can cleanly include the MSIX portion too, that's fine too. (MSI-X is really MSI with wider eventing capabilities but otherwise non-GSI just as much - and we dont want to enable (or even touch) the legacy IRQ line registers for any of them, even if they happen to be enumerated)
Right?
Ingo
| |