Kenji-san, Greg Thank you for reviewing. I'll consider about what you pointed out for a while... > How about adding new file under sys/bus/pci/<slot name> directory > to indicate which php driver manages the slot, instead of adding > PCIHP_DRV_NAME environment variable. I had some experiences that > it was difficult to know the slot was manged by what php driver > in debugging. So the new file will be useful for debugging too. Is what you say this? --- drivers/pci/hotplug/pci_hotplug_core.c | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) Index: linux-next.29rc6/drivers/pci/hotplug/pci_hotplug_core.c =================================================================== --- linux-next.29rc6.orig/drivers/pci/hotplug/pci_hotplug_core.c +++ linux-next.29rc6/drivers/pci/hotplug/pci_hotplug_core.c @@ -347,6 +347,25 @@ static struct pci_slot_attribute hotplug .store = test_write_file }; +static ssize_t owner_name_read_file(struct pci_slot *slot, char *buf) +{ + struct hotplug_slot_ops *ops = slot->hotplug->ops; + int retval; + + if (!try_module_get(ops->owner)) + return -ENODEV; + + retval = sprintf(buf, "%s\n", ops->owner->name); + module_put(ops->owner); + + return retval; +} + +static struct pci_slot_attribute hotplug_slot_attr_owner_name = { + .attr = {.name = "owner", .mode = S_IFREG | S_IRUGO}, + .show = owner_name_read_file, +}; + static int has_power_file(struct pci_slot *pci_slot) { struct hotplug_slot *slot = pci_slot->hotplug; @@ -420,6 +439,16 @@ static int has_test_file(struct pci_slot return -ENOENT; } +static int has_owner_name_file(struct pci_slot *pci_slot) +{ + struct hotplug_slot *slot = pci_slot->hotplug; + if ((!slot) || (!slot->ops)) + return -ENODEV; + if (slot->ops->owner) + return 0; + return -ENOENT; +} + static int fs_add_slot(struct pci_slot *slot) { int retval = 0; @@ -472,8 +501,19 @@ static int fs_add_slot(struct pci_slot * goto exit_test; } + if (has_owner_name_file(slot) == 0) { + retval = sysfs_create_file(&slot->kobj, + &hotplug_slot_attr_owner_name.attr); + if (retval) + goto exit_owner_name; + } + goto exit; +exit_owner_name: + if (has_test_file(slot) == 0) + sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_test.attr); + exit_test: if (has_cur_bus_speed_file(slot) == 0) sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_cur_bus_speed.attr); -- 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