On Sat, Sep 15, 2012 at 4:27 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Fri, Sep 14, 2012 at 8:05 PM, Jiang Liu <liuj97@xxxxxxxxx> wrote: >> From: Jiang Liu <jiang.liu@xxxxxxxxxx> >> >> Now ACPI devices are created before/destroyed after corresponding PCI >> devices, and acpi_platform_notify/acpi_platform_notify_remove will >> update PCI<->ACPI binding relationship when creating/destroying PCI >> devices, there's no need to invoke bind/unbind callbacks from ACPI >> device probe/destroy routines anymore. So remove bind/unbind callbacks >> from acpi_device_ops. > for pci root bus, acpi_bus_trim() is used to remove acpi_device. > > and later in acpi_pci_root_remove to stop pci drivers/ioapic driver, > iommu driver then remove pci devices. > > if call back is removed there, then could some functions in > acpi_pci_unbind() will be skipped. > > I really do not want to add pci_stop_bus_devices() in > pci_root_hp.c::handle_root_bridge_removal before > calling acpi_bus_trim... FYI, I solved the problem. will call apci_bus_remove() two times. it will make sure pci devices get removed at first before acpi devices... Thanks Yinghai
Attachment:
pci_root_hp_1.patch
Description: Binary data