udev: persistent naming - we cannot use virtio numbers as they are not stable
This reverts commit8741f2defa: 'Add virtio-blk support to path_id' and commite3d563346c: 'udev: net_id - handle virtio buses'. Distros may want to take note of this, as it changes behavior.
This commit is contained in:
@@ -37,7 +37,6 @@
|
|||||||
* ccw<name> -- CCW bus group name
|
* ccw<name> -- CCW bus group name
|
||||||
* o<index> -- on-board device index number
|
* o<index> -- on-board device index number
|
||||||
* s<slot>[f<function>][d<dev_id>] -- hotplug slot index number
|
* s<slot>[f<function>][d<dev_id>] -- hotplug slot index number
|
||||||
* v<number> -- virtio number
|
|
||||||
* x<MAC> -- MAC address
|
* x<MAC> -- MAC address
|
||||||
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
|
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
|
||||||
* -- PCI geographical location
|
* -- PCI geographical location
|
||||||
@@ -123,7 +122,6 @@ struct netnames {
|
|||||||
|
|
||||||
char usb_ports[IFNAMSIZ];
|
char usb_ports[IFNAMSIZ];
|
||||||
char bcma_core[IFNAMSIZ];
|
char bcma_core[IFNAMSIZ];
|
||||||
char virtio[IFNAMSIZ];
|
|
||||||
char ccw_group[IFNAMSIZ];
|
char ccw_group[IFNAMSIZ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -351,24 +349,6 @@ static int names_bcma(struct udev_device *dev, struct netnames *names) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int names_virtio(struct udev_device *dev, struct netnames *names) {
|
|
||||||
struct udev_device *virtdev;
|
|
||||||
unsigned int num;
|
|
||||||
|
|
||||||
virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", NULL);
|
|
||||||
if (!virtdev)
|
|
||||||
return -ENOENT;
|
|
||||||
|
|
||||||
if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &num) != 1)
|
|
||||||
return -EINVAL;
|
|
||||||
/* suppress the common num == 0 */
|
|
||||||
if (num > 0)
|
|
||||||
snprintf(names->virtio, sizeof(names->virtio), "v%u", num);
|
|
||||||
|
|
||||||
names->type = NET_VIRTIO;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int names_ccw(struct udev_device *dev, struct netnames *names) {
|
static int names_ccw(struct udev_device *dev, struct netnames *names) {
|
||||||
struct udev_device *cdev;
|
struct udev_device *cdev;
|
||||||
const char *bus_id;
|
const char *bus_id;
|
||||||
@@ -577,22 +557,6 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
|
|||||||
udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str);
|
udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* virtio bus */
|
|
||||||
err = names_virtio(dev, &names);
|
|
||||||
if (err >= 0 && names.type == NET_VIRTIO) {
|
|
||||||
char str[IFNAMSIZ];
|
|
||||||
|
|
||||||
if (names.pci_path[0])
|
|
||||||
if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_path, names.virtio) < (int)sizeof(str))
|
|
||||||
udev_builtin_add_property(dev, test, "ID_NET_NAME_PATH", str);
|
|
||||||
|
|
||||||
if (names.pci_slot[0])
|
|
||||||
if (snprintf(str, sizeof(str), "%s%s%s", prefix, names.pci_slot, names.virtio) < (int)sizeof(str))
|
|
||||||
udev_builtin_add_property(dev, test, "ID_NET_NAME_SLOT", str);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -542,9 +542,6 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool
|
|||||||
} else if (streq(subsys, "xen")) {
|
} else if (streq(subsys, "xen")) {
|
||||||
path_prepend(&path, "xen-%s", udev_device_get_sysname(parent));
|
path_prepend(&path, "xen-%s", udev_device_get_sysname(parent));
|
||||||
parent = skip_subsystem(parent, "xen");
|
parent = skip_subsystem(parent, "xen");
|
||||||
} else if (streq(subsys, "virtio")) {
|
|
||||||
path_prepend(&path, "virtio-pci-%s", udev_device_get_sysname(parent));
|
|
||||||
parent = skip_subsystem(parent, "virtio");
|
|
||||||
} else if (streq(subsys, "scm")) {
|
} else if (streq(subsys, "scm")) {
|
||||||
path_prepend(&path, "scm-%s", udev_device_get_sysname(parent));
|
path_prepend(&path, "scm-%s", udev_device_get_sysname(parent));
|
||||||
parent = skip_subsystem(parent, "scm");
|
parent = skip_subsystem(parent, "scm");
|
||||||
|
|||||||
Reference in New Issue
Block a user