linux/drivers/pci
David Miller b3b7cc7b41 Fix assertion failure with MSI on sparc64
Today's find is a triggered assertion in msi_free_irqs() when the system
doesn't support MSI, in which case arch_setup_msi_irqs() always returns
an error.

The problem is that when this happens we branch into msi_free_irqs(), to
which you added the following assertion loop:

	list_for_each_entry(entry, &dev->msi_list, list)
		BUG_ON(irq_has_action(entry->irq));

Well, if arch_setup_msi_irqs() fails, entry->irq will be zero and
although that's never assigned to any normal devices we use that IRQ
number for the timer interrupt on sparc64 so this assertion triggers.

Better to test for zero before doing the irq_has_action() assertion
thing.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-11 16:01:18 -07:00
..
hotplug [IA64] Fix warnings resulting from type-checking in dev_dbg() 2007-05-10 09:39:41 -07:00
pcie PCI: Fix warning message in PCIE port driver 2007-03-26 14:13:08 -07:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
access.c [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
bus.c pci: do not mark exported functions as __devinit 2007-05-02 19:02:35 -07:00
hotplug.c [PATCH] driver core: replace "hotplug" by "uevent" 2006-01-04 16:18:08 -08:00
htirq.c PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c 2006-12-20 10:54:42 -08:00
Kconfig PCI: remove the broken PCI_MULTITHREAD_PROBE option 2007-05-02 19:02:38 -07:00
Makefile [PATCH] htirq: tidy up the htirq code 2006-10-04 07:55:30 -07:00
msi.c Fix assertion failure with MSI on sparc64 2007-05-11 16:01:18 -07:00
msi.h PCI: Make some MSI-X #defines generic 2006-12-01 14:36:56 -08:00
pci-acpi.c ACPI: Disable MSI on request of FADT 2007-04-25 01:13:47 -04:00
pci-driver.c Fix more "deprecated" spellos. 2007-05-09 07:19:14 +02:00
pci-sysfs.c PCI: Free resource files in error path of pci_create_sysfs_dev_files() 2007-05-02 19:02:43 -07:00
pci.c pci: do not mark exported functions as __devinit 2007-05-02 19:02:35 -07:00
pci.h MSI: Use a list instead of the custom link structure 2007-05-02 19:02:37 -07:00
probe.c MSI: Use a list instead of the custom link structure 2007-05-02 19:02:37 -07:00
proc.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
quirks.c pci-quirks: disable MSI on RS400-200 and RS480 2007-05-02 19:02:43 -07:00
remove.c PCI: add pci_stop_bus_device 2006-09-26 17:43:54 -07:00
rom.c Altix: Initial ACPI support - ROM shadowing. 2006-12-01 14:36:58 -08:00
search.c pci: do not mark exported functions as __devinit 2007-05-02 19:02:35 -07:00
setup-bus.c pci: do not mark exported functions as __devinit 2007-05-02 19:02:35 -07:00
setup-irq.c PCI: PCI devices get assigned redundant IRQs 2007-02-16 15:30:10 -08:00
setup-res.c pci: do not mark exported functions as __devinit 2007-05-02 19:02:35 -07:00
syscall.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00