Message ID | 20150225132322.GJ19745@mwanda (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On 2015/2/25 21:23, Dan Carpenter wrote: > I don't have this hardware but it looks like we weren't adding bridge > devices as intended. Maybe the bridge is always the last device? > > Fixes: 05b125004815 ('PCI: cpcihp: Iterate over all devices in slot, not functions 0-7') > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c > index 7d48eca..788db48 100644 > --- a/drivers/pci/hotplug/cpci_hotplug_pci.c > +++ b/drivers/pci/hotplug/cpci_hotplug_pci.c > @@ -286,11 +286,12 @@ int cpci_configure_slot(struct slot *slot) > } > parent = slot->dev->bus; > > - list_for_each_entry(dev, &parent->devices, bus_list) > + list_for_each_entry(dev, &parent->devices, bus_list) { > if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn)) > continue; > if (pci_is_bridge(dev)) > pci_hp_add_bridge(dev); > + } > Good fix. Acked-by: Yijing Wang <wangyijing@huawei.com> Thanks! Yijing. > > pci_assign_unassigned_bridge_resources(parent->self); > >
On Wed, Feb 25, 2015 at 04:23:22PM +0300, Dan Carpenter wrote: > I don't have this hardware but it looks like we weren't adding bridge > devices as intended. Maybe the bridge is always the last device? > > Fixes: 05b125004815 ('PCI: cpcihp: Iterate over all devices in slot, not functions 0-7') > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Applied with Yijing's ack to for-linus for v4.0, thanks! Also marked for stable. I'm afraid this is probably my fault, sorry. > diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c > index 7d48eca..788db48 100644 > --- a/drivers/pci/hotplug/cpci_hotplug_pci.c > +++ b/drivers/pci/hotplug/cpci_hotplug_pci.c > @@ -286,11 +286,12 @@ int cpci_configure_slot(struct slot *slot) > } > parent = slot->dev->bus; > > - list_for_each_entry(dev, &parent->devices, bus_list) > + list_for_each_entry(dev, &parent->devices, bus_list) { > if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn)) > continue; > if (pci_is_bridge(dev)) > pci_hp_add_bridge(dev); > + } > > > pci_assign_unassigned_bridge_resources(parent->self); -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c index 7d48eca..788db48 100644 --- a/drivers/pci/hotplug/cpci_hotplug_pci.c +++ b/drivers/pci/hotplug/cpci_hotplug_pci.c @@ -286,11 +286,12 @@ int cpci_configure_slot(struct slot *slot) } parent = slot->dev->bus; - list_for_each_entry(dev, &parent->devices, bus_list) + list_for_each_entry(dev, &parent->devices, bus_list) { if (PCI_SLOT(dev->devfn) != PCI_SLOT(slot->devfn)) continue; if (pci_is_bridge(dev)) pci_hp_add_bridge(dev); + } pci_assign_unassigned_bridge_resources(parent->self);
I don't have this hardware but it looks like we weren't adding bridge devices as intended. Maybe the bridge is always the last device? Fixes: 05b125004815 ('PCI: cpcihp: Iterate over all devices in slot, not functions 0-7') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html