From 4a7e6bcef059af60baab92a3c0fbe01ed44465d5 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Thu, 15 Mar 2007 00:10:22 +0100 Subject: [PATCH] update internal variables if we see $DEVPATH during IMPORT --- udev_device.c | 4 ++++ udev_rules.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/udev_device.c b/udev_device.c index 1eebd61cc..91fa65548 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 200b4e702..7ab3bba71 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); } } -- 2.30.2