Re: [Pcihpd-discuss] [PATCH] use bus_slot number for name

2005-08-16 Thread Kristen Accardi
On Wed, 2005-08-10 at 16:01 +0100, Matthew Wilcox wrote:
> On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
> > For systems with multiple hotplug controllers, you need to use more than
> > just the slot number to uniquely name the slot.  Without a unique slot
> > name, the pci_hp_register() will fail.  This patch adds the bus number
> > to the name.
> 
> That doesn't make much sense.  The slot number should at least be unique
> to the chassis, if not to the whole machine.  HP's large machines with
> multiple cabinets encode the cabinet number in the return from _SUN.
> It ends up as something like 80103 for a large machine while still being
> merely slot 3 for the smaller machines.
> 
> IOW, I think this is a firmware bug which needs to be fixed there.
> 

Just wanted to let you know that I'm not ignoring your comment :).  I'm
checking now to see if the firmware is required to make the slot number
unique across all controllers.  I also am expecting a hardware/firmware
update for the machine that exhibited this behavior, and so will retest
when I get it and let you know.  although, I'm not sure if it's a good
idea to trust the BIOS to do this properly even if it's required.

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


Re: [Pcihpd-discuss] [PATCH] use bus_slot number for name

2005-08-10 Thread Matthew Wilcox
On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
> For systems with multiple hotplug controllers, you need to use more than
> just the slot number to uniquely name the slot.  Without a unique slot
> name, the pci_hp_register() will fail.  This patch adds the bus number
> to the name.

That doesn't make much sense.  The slot number should at least be unique
to the chassis, if not to the whole machine.  HP's large machines with
multiple cabinets encode the cabinet number in the return from _SUN.
It ends up as something like 80103 for a large machine while still being
merely slot 3 for the smaller machines.

IOW, I think this is a firmware bug which needs to be fixed there.

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [Pcihpd-discuss] Re: [PATCH] use bus_slot number for name

2005-08-05 Thread Greg KH
On Fri, Aug 05, 2005 at 02:31:07PM -0700, Kristen Accardi wrote:
> +#define HPSLOT_NAME_SIZE BUS_ID_SIZE 
> +static inline void pci_hp_make_slot_name(struct hotplug_slot *hpslot, struct 
> pci_dev *pdev)
> +{
> + snprintf(hpslot->name, HPSLOT_NAME_SIZE, "%s", pci_name(pdev));
> +}

I don't think that others can use this, as you can have multiple struct
pci_dev for the same "slot".

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] use bus_slot number for name

2005-08-05 Thread Greg KH
On Fri, Aug 05, 2005 at 03:51:23PM -0400, Dave Jones wrote:
> On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
>  > For systems with multiple hotplug controllers, you need to use more than
>  > just the slot number to uniquely name the slot.  Without a unique slot
>  > name, the pci_hp_register() will fail.  This patch adds the bus number
>  > to the name.
>  > 
>  > Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>
>  > 
>  > diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
> linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
> linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
>  > --- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h  2005-07-28 
> 15:44:44.0 -0700
>  > +++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h 
> 2005-08-04 17:57:18.0 -0700
>  > @@ -302,7 +302,7 @@ static inline void return_resource(struc
>  >  
>  >  static inline void make_slot_name(char *buffer, int buffer_size, struct 
> slot *slot)
>  >  {
>  > -  snprintf(buffer, buffer_size, "%d", slot->number);
>  > +  snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
>  >  }
> 
> Won't using..
> 
>   snprintf(buffer, buffer_size, "%s", pci_name(slot));

As Kristen already said, a slot could refer to multiple pci_dev devices,
so I don't know how well this would really work out.

Although you might want to put the domain in that name, if known, as
large boxes might need that, right?

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] use bus_slot number for name

2005-08-05 Thread Kristen Accardi
On Fri, 2005-08-05 at 15:51 -0400, Dave Jones wrote:
> On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
>  > For systems with multiple hotplug controllers, you need to use more than
>  > just the slot number to uniquely name the slot.  Without a unique slot
>  > name, the pci_hp_register() will fail.  This patch adds the bus number
>  > to the name.
>  > 
>  > Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>
>  > 
>  > diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
> linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
> linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
>  > --- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h  2005-07-28 
> 15:44:44.0 -0700
>  > +++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h 
> 2005-08-04 17:57:18.0 -0700
>  > @@ -302,7 +302,7 @@ static inline void return_resource(struc
>  >  
>  >  static inline void make_slot_name(char *buffer, int buffer_size, struct 
> slot *slot)
>  >  {
>  > -  snprintf(buffer, buffer_size, "%d", slot->number);
>  > +  snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
>  >  }
> 
> Won't using..
> 
>   snprintf(buffer, buffer_size, "%s", pci_name(slot));
> 
> work equally as well, and also future-proof this ?
>  
>   Dave

What do you think of this patch - it is basically what you asked for
except that I moved the functionality up to pci_hotplug.h so that all
drivers can use the same nameing convention if they feel like it.

Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>

diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/pciehp_core.c 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp_core.c
--- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp_core.c  2005-07-28 
15:44:44.0 -0700
+++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp_core.c 
2005-08-05 14:15:09.0 -0700
@@ -140,7 +140,7 @@ static int init_slots(struct controller 
goto error_hpslot;
memset(new_slot->hotplug_slot->info, 0,
sizeof(struct hotplug_slot_info));
-   new_slot->hotplug_slot->name = kmalloc(SLOT_NAME_SIZE,
+   new_slot->hotplug_slot->name = kmalloc(HPSLOT_NAME_SIZE,
GFP_KERNEL);
if (!new_slot->hotplug_slot->name)
goto error_info;
@@ -156,7 +156,7 @@ static int init_slots(struct controller 
/* register this slot with the hotplug pci core */
new_slot->hotplug_slot->private = new_slot;
new_slot->hotplug_slot->release = &release_slot;
-   make_slot_name(new_slot->hotplug_slot->name, SLOT_NAME_SIZE, 
new_slot);
+   pci_hp_make_slot_name(new_slot->hotplug_slot, ctrl->pci_dev); 
new_slot->hotplug_slot->ops = &pciehp_hotplug_slot_ops;
 
new_slot->hpc_ops->get_power_status(new_slot, 
&(new_slot->hotplug_slot->info->power_status));
diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
--- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h   2005-07-28 
15:44:44.0 -0700
+++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h  
2005-08-05 14:14:54.0 -0700
@@ -298,12 +298,6 @@ static inline void return_resource(struc
*head = node;
 }
 
-#define SLOT_NAME_SIZE 10
-
-static inline void make_slot_name(char *buffer, int buffer_size, struct slot 
*slot)
-{
-   snprintf(buffer, buffer_size, "%d", slot->number);
-}
 
 enum php_ctlr_type {
PCI,
diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/pci_hotplug.h 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pci_hotplug.h
--- linux-2.6.13-rc4/drivers/pci/hotplug/pci_hotplug.h  2005-07-28 
15:44:44.0 -0700
+++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pci_hotplug.h 
2005-08-05 14:21:45.0 -0700
@@ -170,6 +170,12 @@ struct hotplug_slot {
 };
 #define to_hotplug_slot(n) container_of(n, struct hotplug_slot, kobj)
 
+#define HPSLOT_NAME_SIZE BUS_ID_SIZE 
+static inline void pci_hp_make_slot_name(struct hotplug_slot *hpslot, struct 
pci_dev *pdev)
+{
+   snprintf(hpslot->name, HPSLOT_NAME_SIZE, "%s", pci_name(pdev));
+}
+
 extern int pci_hp_register (struct hotplug_slot *slot);
 extern int pci_hp_deregister   (struct hotplug_slot *slot);
 extern int pci_hp_change_slot_info (struct hotplug_slot *slot,
diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/shpchp_core.c 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/shpchp_core.c
--- linux-2.6.13-rc4/drivers/pci/hotplug/shpchp_core.c  2005-07-28 
15:44:44.0 -0700
+++ linux-

Re: [PATCH] use bus_slot number for name

2005-08-05 Thread Kristen Accardi
On Fri, 2005-08-05 at 15:51 -0400, Dave Jones wrote:
> On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
>  > For systems with multiple hotplug controllers, you need to use more than
>  > just the slot number to uniquely name the slot.  Without a unique slot
>  > name, the pci_hp_register() will fail.  This patch adds the bus number
>  > to the name.
>  > 
>  > Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>
>  > 
>  > diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
> linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
> linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
>  > --- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h  2005-07-28 
> 15:44:44.0 -0700
>  > +++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h 
> 2005-08-04 17:57:18.0 -0700
>  > @@ -302,7 +302,7 @@ static inline void return_resource(struc
>  >  
>  >  static inline void make_slot_name(char *buffer, int buffer_size, struct 
> slot *slot)
>  >  {
>  > -  snprintf(buffer, buffer_size, "%d", slot->number);
>  > +  snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
>  >  }
> 
> Won't using..
> 
>   snprintf(buffer, buffer_size, "%s", pci_name(slot));
> 
> work equally as well, and also future-proof this ?
>  
>   Dave

Well, it isn't as convenient since pci_dev is not available from the
slot structure. But I will do it if this is the general consensus.

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


Re: [PATCH] use bus_slot number for name

2005-08-05 Thread Dave Jones
On Fri, Aug 05, 2005 at 12:16:06PM -0700, Kristen Accardi wrote:
 > For systems with multiple hotplug controllers, you need to use more than
 > just the slot number to uniquely name the slot.  Without a unique slot
 > name, the pci_hp_register() will fail.  This patch adds the bus number
 > to the name.
 > 
 > Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>
 > 
 > diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
 > linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
 > linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
 > --- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h2005-07-28 
 > 15:44:44.0 -0700
 > +++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h   
 > 2005-08-04 17:57:18.0 -0700
 > @@ -302,7 +302,7 @@ static inline void return_resource(struc
 >  
 >  static inline void make_slot_name(char *buffer, int buffer_size, struct 
 > slot *slot)
 >  {
 > -snprintf(buffer, buffer_size, "%d", slot->number);
 > +snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
 >  }

Won't using..

snprintf(buffer, buffer_size, "%s", pci_name(slot));

work equally as well, and also future-proof this ?
 
Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] use bus_slot number for name

2005-08-05 Thread Kristen Accardi
For systems with multiple hotplug controllers, you need to use more than
just the slot number to uniquely name the slot.  Without a unique slot
name, the pci_hp_register() will fail.  This patch adds the bus number
to the name.

Signed-off-by: Kristen Carlson Accardi <[EMAIL PROTECTED]>

diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h
--- linux-2.6.13-rc4/drivers/pci/hotplug/pciehp.h   2005-07-28 
15:44:44.0 -0700
+++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/pciehp.h  
2005-08-04 17:57:18.0 -0700
@@ -302,7 +302,7 @@ static inline void return_resource(struc
 
 static inline void make_slot_name(char *buffer, int buffer_size, struct slot 
*slot)
 {
-   snprintf(buffer, buffer_size, "%d", slot->number);
+   snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
 }
 
 enum php_ctlr_type {
diff -uprN -X linux-2.6.13-rc4/Documentation/dontdiff 
linux-2.6.13-rc4/drivers/pci/hotplug/shpchp.h 
linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/shpchp.h
--- linux-2.6.13-rc4/drivers/pci/hotplug/shpchp.h   2005-07-28 
15:44:44.0 -0700
+++ linux-2.6.13-rc4-shpchp-slot-name-fix/drivers/pci/hotplug/shpchp.h  
2005-08-04 17:57:18.0 -0700
@@ -46,7 +46,7 @@ extern int shpchp_poll_mode;
 extern int shpchp_poll_time;
 extern int shpchp_debug;
 
-/*#define dbg(format, arg...) do { if (shpchp_debug) printk(KERN_DEBUG "%s: " 
format, MY_NAME , ## arg); } while (0)*/
+/* #define dbg(format, arg...) do { if (shpchp_debug) printk(KERN_DEBUG "%s: " 
format, MY_NAME , ## arg); } while (0) */
 #define dbg(format, arg...) do { if (shpchp_debug) printk("%s: " format, 
MY_NAME , ## arg); } while (0)
 #define err(format, arg...) printk(KERN_ERR "%s: " format, MY_NAME , ## arg)
 #define info(format, arg...) printk(KERN_INFO "%s: " format, MY_NAME , ## arg)
@@ -411,7 +411,7 @@ static inline void return_resource(struc
 
 static inline void make_slot_name(char *buffer, int buffer_size, struct slot 
*slot)
 {
-   snprintf(buffer, buffer_size, "%d", slot->number);
+   snprintf(buffer, buffer_size, "%04d_%04d", slot->bus, slot->number);
 }
 
 enum php_ctlr_type {

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