Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver

From: Jiang Liu (Gerry)
Date: Thu Jun 13 2013 - 23:56:57 EST


On 2013/6/14 11:43, Yinghai Lu wrote:
On Thu, Jun 13, 2013 at 8:30 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
On Thu, Jun 13, 2013 at 7:51 PM, Jiang Liu (Gerry) <jiang.liu@xxxxxxxxxx> wrote:

For the first step, I'm trying to make hotplug case work in the same way as
boot time. Do you think this patch help?

diff --git a/drivers/pci/hotplug/acpiphp_glue.c
b/drivers/pci/hotplug/acpiphp_gl
index 270fdba..12e3f6e 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -837,13 +837,13 @@ static int __ref enable_device(struct acpiphp_slot
*slot)
max = pci_scan_bridge(bus, dev, max, pass);
if (pass && dev->subordinate) {
check_hotplug_bridge(slot, dev);
- pci_bus_size_bridges(dev->subordinate);
+ pcibios_resource_survey_bus(dev->subordi
}
}
}
}

- pci_bus_assign_resources(bus);
+ pci_assign_unassigned_bus_resources(bus);

can not use use pci_assign_unassigned_bus_resources directly. as bus
could have devices that is there already
before this enable_device and could have driver loaded before.

that is why we have checking
if (PCI_SLOT(dev->devfn) != slot->device)

Thanks for reminder.
This a quick solution for prove of concept and it should be OK for
this Sony laptop case.
On the other hand, we may need to enhance pci_bus_size_bridges(dev->subordinate) and
pci_bus_assign_resources(bus) to support realloc_list.

.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/