diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2012-09-24 19:24:11 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2012-09-24 19:24:11 -0400 |
commit | 78c8f84302ce007aedcfa11912fd4aacf22727ab (patch) | |
tree | f7a699c34875cd33c2e6c1301b740adb0ba4054f | |
parent | d3ce52f50cc1697504130897f1d7c489b62dae1c (diff) | |
parent | 84544a1dea61879edebceddb7a76d5737409f8c8 (diff) |
Merge branch 'pci/yinghai-misc' into next
-rw-r--r-- | arch/ia64/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/x86/pci/acpi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/vga/vgaarb.c | 14 | ||||
-rw-r--r-- | drivers/pci/bus.c | 6 | ||||
-rw-r--r-- | drivers/pci/probe.c | 6 |
5 files changed, 19 insertions, 13 deletions
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index a7ebe9440271..5faa66c5c2a8 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -295,7 +295,6 @@ static __devinit acpi_status add_window(struct acpi_resource *res, void *data) | |||
295 | window->resource.flags = flags; | 295 | window->resource.flags = flags; |
296 | window->resource.start = addr.minimum + offset; | 296 | window->resource.start = addr.minimum + offset; |
297 | window->resource.end = window->resource.start + addr.address_length - 1; | 297 | window->resource.end = window->resource.start + addr.address_length - 1; |
298 | window->resource.child = NULL; | ||
299 | window->offset = offset; | 298 | window->offset = offset; |
300 | 299 | ||
301 | if (insert_resource(root, &window->resource)) { | 300 | if (insert_resource(root, &window->resource)) { |
@@ -357,7 +356,7 @@ pci_acpi_scan_root(struct acpi_pci_root *root) | |||
357 | &windows); | 356 | &windows); |
358 | if (windows) { | 357 | if (windows) { |
359 | controller->window = | 358 | controller->window = |
360 | kmalloc_node(sizeof(*controller->window) * windows, | 359 | kzalloc_node(sizeof(*controller->window) * windows, |
361 | GFP_KERNEL, controller->node); | 360 | GFP_KERNEL, controller->node); |
362 | if (!controller->window) | 361 | if (!controller->window) |
363 | goto out2; | 362 | goto out2; |
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index 505acdd6d600..192397c98606 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c | |||
@@ -305,7 +305,6 @@ setup_resource(struct acpi_resource *acpi_res, void *data) | |||
305 | res->flags = flags; | 305 | res->flags = flags; |
306 | res->start = start; | 306 | res->start = start; |
307 | res->end = end; | 307 | res->end = end; |
308 | res->child = NULL; | ||
309 | 308 | ||
310 | if (!pci_use_crs) { | 309 | if (!pci_use_crs) { |
311 | dev_printk(KERN_DEBUG, &info->bridge->dev, | 310 | dev_printk(KERN_DEBUG, &info->bridge->dev, |
@@ -434,7 +433,7 @@ probe_pci_root_info(struct pci_root_info *info, struct acpi_device *device, | |||
434 | 433 | ||
435 | size = sizeof(*info->res) * info->res_num; | 434 | size = sizeof(*info->res) * info->res_num; |
436 | info->res_num = 0; | 435 | info->res_num = 0; |
437 | info->res = kmalloc(size, GFP_KERNEL); | 436 | info->res = kzalloc(size, GFP_KERNEL); |
438 | if (!info->res) | 437 | if (!info->res) |
439 | return; | 438 | return; |
440 | 439 | ||
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c index b6852b776931..e893f6e1937d 100644 --- a/drivers/gpu/vga/vgaarb.c +++ b/drivers/gpu/vga/vgaarb.c | |||
@@ -141,7 +141,11 @@ EXPORT_SYMBOL_GPL(vga_default_device); | |||
141 | 141 | ||
142 | void vga_set_default_device(struct pci_dev *pdev) | 142 | void vga_set_default_device(struct pci_dev *pdev) |
143 | { | 143 | { |
144 | vga_default = pdev; | 144 | if (vga_default == pdev) |
145 | return; | ||
146 | |||
147 | pci_dev_put(vga_default); | ||
148 | vga_default = pci_dev_get(pdev); | ||
145 | } | 149 | } |
146 | #endif | 150 | #endif |
147 | 151 | ||
@@ -577,7 +581,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev) | |||
577 | #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE | 581 | #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE |
578 | if (vga_default == NULL && | 582 | if (vga_default == NULL && |
579 | ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) | 583 | ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) |
580 | vga_default = pci_dev_get(pdev); | 584 | vga_set_default_device(pdev); |
581 | #endif | 585 | #endif |
582 | 586 | ||
583 | vga_arbiter_check_bridge_sharing(vgadev); | 587 | vga_arbiter_check_bridge_sharing(vgadev); |
@@ -613,10 +617,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) | |||
613 | } | 617 | } |
614 | 618 | ||
615 | #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE | 619 | #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE |
616 | if (vga_default == pdev) { | 620 | if (vga_default == pdev) |
617 | pci_dev_put(vga_default); | 621 | vga_set_default_device(NULL); |
618 | vga_default = NULL; | ||
619 | } | ||
620 | #endif | 622 | #endif |
621 | 623 | ||
622 | if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) | 624 | if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)) |
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 4b0970b46e0b..6241fd05bd41 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c | |||
@@ -87,11 +87,15 @@ EXPORT_SYMBOL_GPL(pci_bus_resource_n); | |||
87 | void pci_bus_remove_resources(struct pci_bus *bus) | 87 | void pci_bus_remove_resources(struct pci_bus *bus) |
88 | { | 88 | { |
89 | int i; | 89 | int i; |
90 | struct pci_bus_resource *bus_res, *tmp; | ||
90 | 91 | ||
91 | for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++) | 92 | for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++) |
92 | bus->resource[i] = NULL; | 93 | bus->resource[i] = NULL; |
93 | 94 | ||
94 | pci_free_resource_list(&bus->resources); | 95 | list_for_each_entry_safe(bus_res, tmp, &bus->resources, list) { |
96 | list_del(&bus_res->list); | ||
97 | kfree(bus_res); | ||
98 | } | ||
95 | } | 99 | } |
96 | 100 | ||
97 | /** | 101 | /** |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 23961117663f..ec909afa90b6 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -729,8 +729,10 @@ int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, | |||
729 | 729 | ||
730 | /* Check if setup is sensible at all */ | 730 | /* Check if setup is sensible at all */ |
731 | if (!pass && | 731 | if (!pass && |
732 | (primary != bus->number || secondary <= bus->number)) { | 732 | (primary != bus->number || secondary <= bus->number || |
733 | dev_dbg(&dev->dev, "bus configuration invalid, reconfiguring\n"); | 733 | secondary > subordinate)) { |
734 | dev_info(&dev->dev, "bridge configuration invalid ([bus %02x-%02x]), reconfiguring\n", | ||
735 | secondary, subordinate); | ||
734 | broken = 1; | 736 | broken = 1; |
735 | } | 737 | } |
736 | 738 | ||