diff options
Diffstat (limited to 'drivers/acpi/pci_root.c')
-rw-r--r-- | drivers/acpi/pci_root.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index c6bcb8c719d8..68a5f712cd19 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -112,10 +112,10 @@ get_root_bridge_busnr_callback(struct acpi_resource *resource, void *data) | |||
112 | if (ACPI_FAILURE(status)) | 112 | if (ACPI_FAILURE(status)) |
113 | return AE_OK; | 113 | return AE_OK; |
114 | 114 | ||
115 | if ((address.address_length > 0) && | 115 | if ((address.address.address_length > 0) && |
116 | (address.resource_type == ACPI_BUS_NUMBER_RANGE)) { | 116 | (address.resource_type == ACPI_BUS_NUMBER_RANGE)) { |
117 | res->start = address.minimum; | 117 | res->start = address.address.minimum; |
118 | res->end = address.minimum + address.address_length - 1; | 118 | res->end = address.address.minimum + address.address.address_length - 1; |
119 | } | 119 | } |
120 | 120 | ||
121 | return AE_OK; | 121 | return AE_OK; |
@@ -621,6 +621,7 @@ static int acpi_pci_root_add(struct acpi_device *device, | |||
621 | if (hotadd) { | 621 | if (hotadd) { |
622 | pcibios_resource_survey_bus(root->bus); | 622 | pcibios_resource_survey_bus(root->bus); |
623 | pci_assign_unassigned_root_bus_resources(root->bus); | 623 | pci_assign_unassigned_root_bus_resources(root->bus); |
624 | acpi_ioapic_add(root); | ||
624 | } | 625 | } |
625 | 626 | ||
626 | pci_lock_rescan_remove(); | 627 | pci_lock_rescan_remove(); |
@@ -644,6 +645,8 @@ static void acpi_pci_root_remove(struct acpi_device *device) | |||
644 | 645 | ||
645 | pci_stop_root_bus(root->bus); | 646 | pci_stop_root_bus(root->bus); |
646 | 647 | ||
648 | WARN_ON(acpi_ioapic_remove(root)); | ||
649 | |||
647 | device_set_run_wake(root->bus->bridge, false); | 650 | device_set_run_wake(root->bus->bridge, false); |
648 | pci_acpi_remove_bus_pm_notifier(device); | 651 | pci_acpi_remove_bus_pm_notifier(device); |
649 | 652 | ||