pci hotplug: fix rpaphp directory naming
PATCH 1/1 pci hotplug: fix rpaphp directory naming
Fix presentation of the slot number in the /sys/bus/pci/slots directory to match that used in the majority of other drivers.
------
Quoted 10 lines · Matthew Wilcox
Quoted 6 lines · Linas Vepstas
/sys/bus/pci/slots/sys/bus/pci/slots/control/sys/bus/pci/slots/control/remove_slot/sys/bus/pci/slots/control/add_slot
/sys/bus/pci/slots/0001:00:02.0
/sys/bus/pci/slots/0001:00:02.0/phy_locationUgh. Almost two years ago, paulus promised me he was going to fix the slot name for rpaphp. Guess he didn't.
You have to ask the right person. :-) I've been defacto mainaining the rpaphp code for unpteen years now. On the other hand, I am also much, much better at promising than delivering.
Quoted 5 lines
This is one of the hateful things about the current design -- hotplug drivers do too much. Instead of being just the interface between the Linux PCI code and the hardware, they create sysfs directories, add files,
and generally have far too much freedom.
I chopped out several hundred LOC from rpaphp a year ago, and hopefuly that might make furthre simplification easier someday.
Quoted 14 lines
We have four different schemes currently for naming in slots/,
1. slot number. Used by cpqphp, ibmphp, acpiphp, pciehp, shpc.
2. domain:bus:dev:fn. Used by fakephp.
3a. domain:bus:dev. Used by rpaphp and sgihp.
3b. Except that rpaphp usesphy_locationto present the information that
should be in the name and sgihp uses path.... I've forgotten what cpci uses. And yenta doesn't use it.
How is anyone supposed to write sane managability tools in the presence
of such anarchy?
Quoted 7 lines
Quoted 2 lines
~ # cat /sys/bus/pci/slots/0000:00:02.2/phy_location U787A.001.DNZ00Z5-P1-C2
Right. This should look like:
# cat /sys/bus/pci/slots/U787A.001.DNZ00Z5-P1-C2/address 0000:00:02
This patch implements exactly what you describe. Boot tested. I assume you really mean it -- if so, then please review and ack the patch !?
I have absolutely no clue if this breaks any existing IBM tools. I'm pretty sure it doesn't ... but attention Mike Strosaker! does it?
drivers/pci/hotplug/rpaphp.h | 1 drivers/pci/hotplug/rpaphp_pci.c | 14 ----------- drivers/pci/hotplug/rpaphp_slot.c | 47 +++++++++++++++++++------------------- 3 files changed, 24 insertions(+), 38 deletions(-)
drivers/pci/hotplug/rpaphp_pci.c +0 -14
@@ -64,19 +64,6 @@ int rpaphp_get_sensor_state(struct slotreturn rc; } -static void set_slot_name (struct slot *slot) -{ -struct pci_bus *bus = slot->bus; -struct pci_dev *bridge; - - bridge = bus->self; -if (bridge) -strcpy (slot->name,pci_name (bridge)); -else -sprintf (slot->name,"%04x:%02x:00.0" ,pci_domain_nr (bus), - bus->number); -} -/** * rpaphp_enable_slot - record slot state, config pci device *
@@ -114,7 +101,6 @@ int rpaphp_enable_slot(struct slot *slot info->adapter_status =EMPTY ; slot->bus = bus; slot->pci_devs = &bus->devices; -set_slot_name (slot);/* if there's an adapter in the slot, go add the pci devices */ if (state ==PRESENT ) {
drivers/pci/hotplug/rpaphp_slot.c +24 -23
102 lines not on this page · raw message
drivers/pci/hotplug/rpaphp.h +0 -1
@@ -74,7 +74,6 @@ struct slot {u32 type;u32 power_domain;char *name; -char *location;struct device_node *dn;struct pci_bus *bus;struct list_head *pci_devs;
Quoted 4 lines · Linas Vepstas
Fix presentation of the slot number in the
/sys/bus/pci/slotsdirectory to match that used in the majority of other drivers.
We need a signed-off-by: to be able to apply this...
thanks,
greg k-h
PATCH v2 1/1 pci hotplug: fix rpaphp directory naming
Fix presentation of the slot number in the /sys/bus/pci/slots directory to match that used in the majority of other drivers.
------
Quoted 1 line · Greg KH
We need a signed-off-by: to be able to apply this...
Whoops. See above. Same patch as list time, no changes.
Quoted 10 lines · Matthew Wilcox
Quoted 6 lines · Linas Vepstas
/sys/bus/pci/slots/sys/bus/pci/slots/control/sys/bus/pci/slots/control/remove_slot/sys/bus/pci/slots/control/add_slot
/sys/bus/pci/slots/0001:00:02.0
/sys/bus/pci/slots/0001:00:02.0/phy_locationUgh. Almost two years ago, paulus promised me he was going to fix the slot name for rpaphp. Guess he didn't.
You have to ask the right person. :-) I've been defacto mainaining the rpaphp code for unpteen years now. On the other hand, I am also much, much better at promising than delivering.
Quoted 5 lines
This is one of the hateful things about the current design -- hotplug drivers do too much. Instead of being just the interface between the Linux PCI code and the hardware, they create sysfs directories, add files,
and generally have far too much freedom.
I chopped out several hundred LOC from rpaphp a year ago, and hopefuly that might make furthre simplification easier someday.
Quoted 14 lines
We have four different schemes currently for naming in slots/,
1. slot number. Used by cpqphp, ibmphp, acpiphp, pciehp, shpc.
2. domain:bus:dev:fn. Used by fakephp.
3a. domain:bus:dev. Used by rpaphp and sgihp.
3b. Except that rpaphp usesphy_locationto present the information that
should be in the name and sgihp uses path.... I've forgotten what cpci uses. And yenta doesn't use it.
How is anyone supposed to write sane managability tools in the presence
of such anarchy?
Quoted 7 lines
Quoted 2 lines
~ # cat /sys/bus/pci/slots/0000:00:02.2/phy_location U787A.001.DNZ00Z5-P1-C2
Right. This should look like:
# cat /sys/bus/pci/slots/U787A.001.DNZ00Z5-P1-C2/address 0000:00:02
This patch implements exactly what you describe. Boot tested. I assume you really mean it -- if so, then please review and ack the patch !?
I have absolutely no clue if this breaks any existing IBM tools. I'm pretty sure it doesn't ... but attention Mike Strosaker! does it?
drivers/pci/hotplug/rpaphp.h | 1 drivers/pci/hotplug/rpaphp_pci.c | 14 ----------- drivers/pci/hotplug/rpaphp_slot.c | 47 +++++++++++++++++++------------------- 3 files changed, 24 insertions(+), 38 deletions(-)
drivers/pci/hotplug/rpaphp_pci.c +0 -14
@@ -64,19 +64,6 @@ int rpaphp_get_sensor_state(struct slotreturn rc; } -static void set_slot_name (struct slot *slot) -{ -struct pci_bus *bus = slot->bus; -struct pci_dev *bridge; - - bridge = bus->self; -if (bridge) -strcpy (slot->name,pci_name (bridge)); -else -sprintf (slot->name,"%04x:%02x:00.0" ,pci_domain_nr (bus), - bus->number); -} -/** * rpaphp_enable_slot - record slot state, config pci device *
@@ -114,7 +101,6 @@ int rpaphp_enable_slot(struct slot *slot info->adapter_status =EMPTY ; slot->bus = bus; slot->pci_devs = &bus->devices; -set_slot_name (slot);/* if there's an adapter in the slot, go add the pci devices */ if (state ==PRESENT ) {
drivers/pci/hotplug/rpaphp_slot.c +24 -23
102 lines not on this page · raw message
drivers/pci/hotplug/rpaphp.h +0 -1
@@ -74,7 +74,6 @@ struct slot {u32 type;u32 power_domain;char *name; -char *location;struct device_node *dn;struct pci_bus *bus;struct list_head *pci_devs;