mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-18 11:54:37 +08:00
Merge branch 'pci/yinghai-misc' into next
This commit is contained in:
commit
78c8f84302
@ -295,7 +295,6 @@ static __devinit acpi_status add_window(struct acpi_resource *res, void *data)
|
||||
window->resource.flags = flags;
|
||||
window->resource.start = addr.minimum + offset;
|
||||
window->resource.end = window->resource.start + addr.address_length - 1;
|
||||
window->resource.child = NULL;
|
||||
window->offset = offset;
|
||||
|
||||
if (insert_resource(root, &window->resource)) {
|
||||
@ -357,7 +356,7 @@ pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
&windows);
|
||||
if (windows) {
|
||||
controller->window =
|
||||
kmalloc_node(sizeof(*controller->window) * windows,
|
||||
kzalloc_node(sizeof(*controller->window) * windows,
|
||||
GFP_KERNEL, controller->node);
|
||||
if (!controller->window)
|
||||
goto out2;
|
||||
|
@ -305,7 +305,6 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
|
||||
res->flags = flags;
|
||||
res->start = start;
|
||||
res->end = end;
|
||||
res->child = NULL;
|
||||
|
||||
if (!pci_use_crs) {
|
||||
dev_printk(KERN_DEBUG, &info->bridge->dev,
|
||||
@ -434,7 +433,7 @@ probe_pci_root_info(struct pci_root_info *info, struct acpi_device *device,
|
||||
|
||||
size = sizeof(*info->res) * info->res_num;
|
||||
info->res_num = 0;
|
||||
info->res = kmalloc(size, GFP_KERNEL);
|
||||
info->res = kzalloc(size, GFP_KERNEL);
|
||||
if (!info->res)
|
||||
return;
|
||||
|
||||
|
@ -141,7 +141,11 @@ EXPORT_SYMBOL_GPL(vga_default_device);
|
||||
|
||||
void vga_set_default_device(struct pci_dev *pdev)
|
||||
{
|
||||
vga_default = pdev;
|
||||
if (vga_default == pdev)
|
||||
return;
|
||||
|
||||
pci_dev_put(vga_default);
|
||||
vga_default = pci_dev_get(pdev);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -577,7 +581,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
|
||||
#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
|
||||
if (vga_default == NULL &&
|
||||
((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK))
|
||||
vga_default = pci_dev_get(pdev);
|
||||
vga_set_default_device(pdev);
|
||||
#endif
|
||||
|
||||
vga_arbiter_check_bridge_sharing(vgadev);
|
||||
@ -613,10 +617,8 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev)
|
||||
}
|
||||
|
||||
#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
|
||||
if (vga_default == pdev) {
|
||||
pci_dev_put(vga_default);
|
||||
vga_default = NULL;
|
||||
}
|
||||
if (vga_default == pdev)
|
||||
vga_set_default_device(NULL);
|
||||
#endif
|
||||
|
||||
if (vgadev->decodes & (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM))
|
||||
|
@ -87,11 +87,15 @@ EXPORT_SYMBOL_GPL(pci_bus_resource_n);
|
||||
void pci_bus_remove_resources(struct pci_bus *bus)
|
||||
{
|
||||
int i;
|
||||
struct pci_bus_resource *bus_res, *tmp;
|
||||
|
||||
for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++)
|
||||
bus->resource[i] = NULL;
|
||||
|
||||
pci_free_resource_list(&bus->resources);
|
||||
list_for_each_entry_safe(bus_res, tmp, &bus->resources, list) {
|
||||
list_del(&bus_res->list);
|
||||
kfree(bus_res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -729,8 +729,10 @@ int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
|
||||
|
||||
/* Check if setup is sensible at all */
|
||||
if (!pass &&
|
||||
(primary != bus->number || secondary <= bus->number)) {
|
||||
dev_dbg(&dev->dev, "bus configuration invalid, reconfiguring\n");
|
||||
(primary != bus->number || secondary <= bus->number ||
|
||||
secondary > subordinate)) {
|
||||
dev_info(&dev->dev, "bridge configuration invalid ([bus %02x-%02x]), reconfiguring\n",
|
||||
secondary, subordinate);
|
||||
broken = 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user