===== drivers/base/class.c 1.54 vs edited ===== --- 1.54/drivers/base/class.c 2004-10-08 20:32:52 +02:00 +++ edited/drivers/base/class.c 2004-11-04 00:23:56 +01:00 @@ -283,8 +283,27 @@ static int class_hotplug(struct kset *ks { struct class_device *class_dev = to_class_dev(kobj); int retval = 0; + int i = 0; + int length = 0; pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id); + + if (class_dev->dev) { + /* add physical device backing this class to environment */ + char *dev = kobject_get_path(&class_dev->dev->kobj, GFP_KERNEL); + + add_hotplug_env_var(envp, num_envp, &i, buffer, buffer_size, + &length, "DEVSYSDEV=%s", dev); + kfree(dev); + + /* 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 (class_dev->class->hotplug) { /* have the bus specific function add its stuff */ retval = class_dev->class->hotplug (class_dev, envp, num_envp,