Kenji Kaneshige wrote: > Alex Chiang wrote: >> * Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>: (snip.) > Thank you for explanation. I understood. > > But I have one concern about the behavior when pci slot driver is not > loaded. My patch (a86161b3134465f) prevents the kernel trace dump > because of duplicate kobject add that would happen in the following two > cases, though (b) is not described in the header of the patch (sorry). > > (a) multiple driver attempt to handle the same slot. > > (b) one or more driver attempt to register multiple slots with the > same name (This can happen if broken platform assigns the same > slot number to multiple hotplug slots, for example). > > With your patch, duplicate kobject add in case (b) is not prevented. > That is my concern. > > I made a below patch to prevent (b), please take a look. And could you > please consider merging it to "[PATCH 2/3] Introduce pci_slot" in your > latest series. > > Thanks, > Kenji Kaneshige > > > --- > drivers/pci/hotplug/pci_hotplug_core.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > Index: 20080610/drivers/pci/hotplug/pci_hotplug_core.c > =================================================================== > --- 20080610.orig/drivers/pci/hotplug/pci_hotplug_core.c > +++ 20080610/drivers/pci/hotplug/pci_hotplug_core.c > @@ -555,6 +555,7 @@ int pci_hp_register(struct hotplug_slot > { > int result; > struct pci_slot *pci_slot; > + struct hotplug_slot *tmp; > > if (slot == NULL) > return -ENODEV; > @@ -567,6 +568,21 @@ int pci_hp_register(struct hotplug_slot > } > > /* > + * Prevent registering multiple hotplug slots with the same name. > + */ > + spin_lock(&pci_hotplug_slot_list_lock); > + list_for_each_entry(tmp, &pci_hotplug_slot_list, slot_list) { > + pci_slot = tmp->pci_slot; > + if (pci_slot->bus == bus && pci_slot->number == slot_nr) > + continue; > + if (!strcmp(tmp->name, slot->name)) { > + spin_unlock(&pci_hotplug_slot_list_lock); > + return -EEXIST; > + } > + } > + spin_unlock(&pci_hotplug_slot_list_lock); > + > + /* > * No problems if we call this interface from both ACPI_PCI_SLOT > * driver and call it here again. If we've already created the > * pci_slot, the interface will simply bump the refcount. > > Please note that I made this patch against linux-next with your latest three patches applied. Thanks, Kenji Kaneshige -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html