udev: persistent naming - we cannot use virtio numbers as they are not stable
This reverts commit 8741f2defaf26aafe5ee0fd29954cfdf84ee519c: 'Add virtio-blk support to path_id' and commit e3d563346c4237af23335cc6904e0662efdf62ad: 'udev: net_id - handle virtio buses'. Distros may want to take note of this, as it changes behavior.
This commit is contained in:
parent
9f2a50a300
commit
bf81e792f3
|
@ -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");
|
||||||
|
|
Loading…
Reference in a new issue