1
linux/drivers/pci
Neil Horman 3e3d0e9246 PCI hotplug: ibmphp: Fix module ref count underflow
I happened to notice that the ibmphp hotplug driver does something
rather silly in its init routine.  It purposely calls module_put so as
to underflow its module ref count to avoid being removed from the
kernel.  This is bad practice, and wrong, since it provides a window for
subsequent module_gets to reset the refcount to zero, allowing an unload
to race in and cause all sorts of mysterious panics.  If the module is
unsafe to load, simply omitting the module_exit parameter is sufficient
to prevent the kernel from allowing the unload.

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2008-12-17 16:07:47 -08:00
..
hotplug PCI hotplug: ibmphp: Fix module ref count underflow 2008-12-17 16:07:47 -08:00
pcie PCI: fix aer resume sanity check 2008-12-16 13:26:45 -08:00
.gitignore
access.c PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. 2008-07-02 11:25:54 -07:00
bus.c PCI: make CPU list affinity visible 2008-10-20 10:53:51 -07:00
dmar.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-21 19:42:20 +01:00
hotplug-pci.c PCI: fix section mismatch warning in pci_scan_child_bus 2008-03-04 15:07:03 -08:00
hotplug.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
htirq.c genirq: remove sparse irq code 2008-10-16 16:53:15 +02:00
intel-iommu.c intel-iommu: fix compile warnings 2008-11-19 09:11:13 +01:00
intr_remapping.c Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
intr_remapping.h VT-d: Changes to support KVM 2008-10-15 14:24:08 +02:00
iova.c VT-d: Changes to support KVM 2008-10-15 14:24:08 +02:00
irq.c PCI: add routines for debugging and handling lost interrupts 2008-10-23 14:54:18 -07:00
Kconfig PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
Makefile PCI: add routines for debugging and handling lost interrupts 2008-10-23 14:54:18 -07:00
msi.c ACPI/PCI: Set support bit for MSI in support field of _OSC 2008-10-22 16:42:35 -07:00
msi.h
pci-acpi.c PCI: ignore bit0 of _OSC return code 2008-11-11 13:33:05 -08:00
pci-driver.c PCI: Check dynids driver_data value for validity 2008-10-20 10:48:35 -07:00
pci-sysfs.c PCI: fix range check on mmapped sysfs resource files 2008-11-03 14:41:16 -08:00
pci.c pci_setup() is init, not devinit 2008-11-30 10:03:37 -08:00
pci.h ACPI/PCI: Set support bit for MSI in support field of _OSC 2008-10-22 16:42:35 -07:00
probe.c PCI: remove unused resource assignment in pci_read_bridge_bases() 2008-10-23 16:17:47 -07:00
proc.c PCI: fixup sparse endianness warnings in proc.c 2008-07-22 15:19:44 -07:00
quirks.c pci: Added quirk to disable msi for MCP55 NIC on Asus P5N32-SLI Premium 2008-11-20 20:42:25 -08:00
remove.c PCI: fix sparse warning in pci_remove_behind_bridge 2008-10-20 10:54:25 -07:00
rom.c PCI: remove excess kernel-doc notation 2008-11-03 14:32:46 -08:00
search.c PCI: Fix reference counting bug 2008-10-22 16:42:35 -07:00
setup-bus.c PCI: use resource_size() everywhere. 2008-10-20 10:54:28 -07:00
setup-irq.c PCI: use dev_printk when possible 2008-06-25 16:05:13 -07:00
setup-res.c PCI: use resource_size() everywhere. 2008-10-20 10:54:28 -07:00
slot.c PCI: stop leaking 'slot_name' in pci_create_slot 2008-12-09 14:36:03 -08:00
syscall.c PCI: remove unneeded lock_kernel() in drivers/pci/syscall.c. 2008-02-01 15:04:21 -08:00