c90570d951
Previously, pci_scan_bus() created a root PCI bus, enumerated the devices on it, and called pci_bus_add_devices(), which made the devices available for drivers to claim them. Most callers assigned resources to devices after pci_scan_bus() returns, which may be after drivers have claimed the devices. This is incorrect; the PCI core should not change device resources while a driver is managing the device. Remove pci_bus_add_devices() from pci_scan_bus() and do it after any resource assignment in the callers. [bhelgaas: changelog, check for failure in mcf_pci_init()] Signed-off-by: Yijing Wang <wangyijing@huawei.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> CC: "David S. Miller" <davem@davemloft.net> CC: Geert Uytterhoeven <geert@linux-m68k.org> CC: Guan Xuetao <gxt@mprc.pku.edu.cn> CC: Richard Henderson <rth@twiddle.net> CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru> CC: Matt Turner <mattst88@gmail.com> |
||
---|---|---|
.. | ||
asm-offsets.c | ||
clock.c | ||
debug-macro.S | ||
debug.S | ||
dma.c | ||
early_printk.c | ||
elf.c | ||
entry.S | ||
fpu-ucf64.c | ||
gpio.c | ||
head.S | ||
hibernate_asm.S | ||
hibernate.c | ||
irq.c | ||
ksyms.c | ||
ksyms.h | ||
Makefile | ||
module.c | ||
pci.c | ||
pm.c | ||
process.c | ||
ptrace.c | ||
puv3-core.c | ||
puv3-nb0916.c | ||
setup.c | ||
setup.h | ||
signal.c | ||
sleep.S | ||
stacktrace.c | ||
sys.c | ||
time.c | ||
traps.c | ||
vmlinux.lds.S |