Re: [PATCH] More Driver Core patches for 2.6.10-rc1

From: Greg KH
Date: Fri Nov 12 2004 - 18:12:21 EST


ChangeSet 1.2098, 2004/11/12 11:43:27-08:00, kay.sievers@xxxxxxxx

[PATCH] add the bus name to the hotplug environment

Add the name of the bus and the driver to the hotplug event for
/sys/devices/*. With this addition, userspace knows what it can
expect from sysfs to show up, instead of waiting for a timeout
for devices without a bus.

ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1
SUBSYSTEM=usb
SEQNUM=978
PHYSDEVBUS=usb
PHYSDEVDRIVER=usb

Signed-off-by: Kay Sievers <kay.sievers@xxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <greg@xxxxxxxxx>


drivers/base/bus.c | 2 +-
drivers/base/core.c | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)


diff -Nru a/drivers/base/bus.c b/drivers/base/bus.c
--- a/drivers/base/bus.c 2004-11-12 14:53:04 -08:00
+++ b/drivers/base/bus.c 2004-11-12 14:53:04 -08:00
@@ -247,7 +247,7 @@
* device_bind_driver - bind a driver to one device.
* @dev: device.
*
- * Allow manual attachment of a driver to a deivce.
+ * Allow manual attachment of a driver to a device.
* Caller must have already set @dev->driver.
*
* Note that this does not modify the bus reference count
diff -Nru a/drivers/base/core.c b/drivers/base/core.c
--- a/drivers/base/core.c 2004-11-12 14:53:04 -08:00
+++ b/drivers/base/core.c 2004-11-12 14:53:04 -08:00
@@ -116,7 +116,28 @@
int num_envp, char *buffer, int buffer_size)
{
struct device *dev = to_dev(kobj);
+ int i = 0;
+ int length = 0;
int retval = 0;
+
+ /* add bus name of physical device */
+ if (dev->bus)
+ add_hotplug_env_var(envp, num_envp, &i,
+ buffer, buffer_size, &length,
+ "PHYSDEVBUS=%s", dev->bus->name);
+
+ /* add driver name of physical device */
+ if (dev->driver)
+ add_hotplug_env_var(envp, num_envp, &i,
+ buffer, buffer_size, &length,
+ "PHYSDEVDRIVER=%s", dev->driver->name);
+
+ /* terminate, set to next free slot, shrink available space */
+ envp[i] = NULL;
+ envp = &envp[i];
+ num_envp -= i;
+ buffer = &buffer[length];
+ buffer_size -= length;

if (dev->bus->hotplug) {
/* have the bus specific function add its stuff */

-
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/