summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--udev_device.c4
-rw-r--r--udev_rules.c8
2 files changed, 11 insertions, 1 deletions
diff --git a/udev_device.c b/udev_device.c
index 1eebd61cc5..91fa655480 100644
--- a/udev_device.c
+++ b/udev_device.c
@@ -208,6 +208,10 @@ int udev_device_event(struct udev_rules *rules, struct udevice *udev)
info("device event will be ignored");
goto exit;
}
+ if (udev->name[0] == '\0') {
+ info("device renaming supressed");
+ goto exit;
+ }
/* look if we want to change the name of the netif */
if (strcmp(udev->name, udev->dev->kernel) != 0) {
diff --git a/udev_rules.c b/udev_rules.c
index 200b4e7024..7ab3bba71c 100644
--- a/udev_rules.c
+++ b/udev_rules.c
@@ -186,7 +186,13 @@ static int import_keys_into_env(struct udevice *udev, const char *buf, size_t bu
linepos = line;
if (get_key(&linepos, &variable, &value) == 0) {
dbg("import '%s=%s'", variable, value);
- name_list_key_add(&udev->env_list, variable, value);
+
+ /* handle device, renamed by external tool, returning new path */
+ if (strcmp(variable, "DEVPATH") == 0) {
+ info("updating devpath from '%s' to '%s'", udev->dev->devpath, value);
+ sysfs_device_set_values(udev->dev, value, NULL, NULL);
+ } else
+ name_list_key_add(&udev->env_list, variable, value);
setenv(variable, value, 1);
}
}