diff options
| -rw-r--r-- | arch/x86/pci/acpi.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index 6ac273832f28..e4695985f9de 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c | |||
| @@ -331,7 +331,7 @@ static void probe_pci_root_info(struct pci_root_info *info, | |||
| 331 | struct list_head *list) | 331 | struct list_head *list) |
| 332 | { | 332 | { |
| 333 | int ret; | 333 | int ret; |
| 334 | struct resource_entry *entry; | 334 | struct resource_entry *entry, *tmp; |
| 335 | 335 | ||
| 336 | sprintf(info->name, "PCI Bus %04x:%02x", domain, busnum); | 336 | sprintf(info->name, "PCI Bus %04x:%02x", domain, busnum); |
| 337 | info->bridge = device; | 337 | info->bridge = device; |
| @@ -345,8 +345,13 @@ static void probe_pci_root_info(struct pci_root_info *info, | |||
| 345 | dev_dbg(&device->dev, | 345 | dev_dbg(&device->dev, |
| 346 | "no IO and memory resources present in _CRS\n"); | 346 | "no IO and memory resources present in _CRS\n"); |
| 347 | else | 347 | else |
| 348 | resource_list_for_each_entry(entry, list) | 348 | resource_list_for_each_entry_safe(entry, tmp, list) { |
| 349 | entry->res->name = info->name; | 349 | if ((entry->res->flags & IORESOURCE_WINDOW) == 0 || |
| 350 | (entry->res->flags & IORESOURCE_DISABLED)) | ||
| 351 | resource_list_destroy_entry(entry); | ||
| 352 | else | ||
| 353 | entry->res->name = info->name; | ||
| 354 | } | ||
| 350 | } | 355 | } |
| 351 | 356 | ||
| 352 | struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) | 357 | struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) |
