Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d81d9d6b authored by Kay Sievers's avatar Kay Sievers Committed by Greg Kroah-Hartman
Browse files

deprecate PHYSDEV* keys



deprecate PHYSDEV* values in the uevent environment

These values are no longer needed and inconsistent with the
stacking of class devices. The event environment should not
carry properties of a parent device. The key PHYSDEVDRIVER is
available as DRIVER, PHYDEVBUS is indentical SUBSYSTEM. Class
devices should not carry any of these values.

Signed-off-by: default avatarKay Sievers <kay.sievers@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 6d99eb33
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -294,3 +294,15 @@ Why: The frame diverter is included in most distribution kernels, but is
	It is not clear if anyone is still using it.
Who:	Stephen Hemminger <shemminger@osdl.org>

---------------------------


What:	PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
When:	Oktober 2008
Why:	The stacking of class devices makes these values misleading and
	inconsistent.
	Class devices should not carry any of these properties, and bus
	devices have SUBSYTEM and DRIVER as a replacement.
Who:	Kay Sievers <kay.sievers@suse.de>

---------------------------
+1 −1
Original line number Diff line number Diff line
@@ -361,7 +361,7 @@ static int class_uevent(struct kset *kset, struct kobject *kobj, char **envp,
	pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id);

	if (class_dev->dev) {
		/* add physical device, backing this device  */
		/* add device, backing this class device (deprecated) */
		struct device *dev = class_dev->dev;
		char *path = kobject_get_path(&dev->kobj, GFP_KERNEL);

+7 −3
Original line number Diff line number Diff line
@@ -149,17 +149,21 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj, char **envp,
			       "MINOR=%u", MINOR(dev->devt));
	}

	/* add bus name of physical device */
	/* add bus name (same as SUBSYSTEM, deprecated) */
	if (dev->bus)
		add_uevent_var(envp, num_envp, &i,
			       buffer, buffer_size, &length,
			       "PHYSDEVBUS=%s", dev->bus->name);

	/* add driver name of physical device */
	if (dev->driver)
	/* add driver name (PHYSDEV* values are deprecated)*/
	if (dev->driver) {
		add_uevent_var(envp, num_envp, &i,
			       buffer, buffer_size, &length,
			       "DRIVER=%s", dev->driver->name);
		add_uevent_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;