[PATCH 2/8] IPMI: Change device node ordering to reflect probe order

From: Corey Minyard
Date: Wed Feb 13 2008 - 11:22:28 EST


From: Carol Hebert <cah@xxxxxxxxxx>

Currently, on systems with multiple BMC interfaces, the ipmi device
names are being created in reverse order relative to how they are
discovered on the system (e.g. on an IBM x3950 multinode server with N
nodes, the device name for the BMC in the first node is /dev/ipmiN-1 and
the device name for the BMC in the last node is /dev/ipmi0, etc.). The
problem is caused by the list handling routines chosen in dmi_scan.c.
Using list_add() causes the multiple ipmi devices to be added to the
device list using a stack-paradigm and so the ipmi driver subsequently
pulls them off during initialization in LIFO order. This patch changes
the dmi_save_ipmi_device() list handling paradigm to a queue, thereby
allowing the ipmi driver to build the ipmi device names in the order in
which they are found on the system.

Signed-off-by: Carol Hebert <cah@xxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
---

--- linux-2.6.24.orig/drivers/firmware/dmi_scan.c 2008-01-30 11:21:55.000000000 -0800
+++ linux-2.6.24/drivers/firmware/dmi_scan.c 2008-01-30 11:18:05.000000000 -0800
@@ -219,7 +219,7 @@ static void __init dmi_save_ipmi_device(
dev->name = "IPMI controller";
dev->device_data = data;

- list_add(&dev->list, &dmi_devices);
+ list_add_tail(&dev->list, &dmi_devices);
}

/*

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