linux/drivers/pci
Eric W. Biederman b1cbf4e4dd [PATCH] msi: fix up the msi enable/disable logic
enable/disable_msi_mode have several side effects which keeps them from being
generally useful.  So this patch replaces them with with two much more
targeted functions: msi_set_enable and msix_set_enable.

This patch makes pci_dev->msi_enabled and pci_dev->msix_enabled the definitive
way to test if linux has enabled the msi capability, and has the appropriate
msi data structures set up.

This patch ensures that while writing the msi messages in save/restore and
during device initialization we have the msi capability disabled so we don't
get into races.  The pci spec requires that we do not have the msi capability
enabled and the msi messages unmasked while we write the messages.  Completely
disabling the capability is overkill but it is easy :)

Care has been taken so we never have both a msi capability and intx enabled
simultaneously.  We haven't run into a problem yet but better safe then sorry.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-05 07:57:50 -08:00
..
hotplug [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pcie Fix typos concerning hierarchy 2007-02-17 19:23:03 +01: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: fix __must_check warnings 2006-09-26 17:43:53 -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 [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
Makefile [PATCH] htirq: tidy up the htirq code 2006-10-04 07:55:30 -07:00
msi.c [PATCH] msi: fix up the msi enable/disable logic 2007-03-05 07:57:50 -08:00
msi.h PCI: Make some MSI-X #defines generic 2006-12-01 14:36:56 -08:00
pci-acpi.c pci: clear osc support flags if no _OSC method 2006-12-01 14:36:58 -08:00
pci-driver.c PCI/sysfs/kobject kernel-doc fixes 2007-02-16 15:30:10 -08:00
pci-sysfs.c PCI: Make PCI device numa-node attribute visible in sysfs 2007-02-16 15:30:11 -08:00
pci.c [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
pci.h [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
probe.c adjust legacy IDE resource setting (v2) 2007-03-03 17:48:54 +01:00
proc.c [PATCH] mark struct file_operations const 5 2007-02-12 09:48:45 -08:00
quirks.c [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08: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: remove pci_find_device_reverse() 2007-02-07 15:50:04 -08:00
setup-bus.c PCI: Make CARDBUS_MEM_SIZE and CARDBUS_IO_SIZE boot options 2007-02-16 15:30:10 -08:00
setup-irq.c PCI: PCI devices get assigned redundant IRQs 2007-02-16 15:30:10 -08:00
setup-res.c PCI legacy resource fix 2006-12-20 10:54:43 -08:00
syscall.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00