chiark / gitweb /
update internal variables if we see $DEVPATH during IMPORT
authorKay Sievers <kay.sievers@vrfy.org>
Wed, 14 Mar 2007 23:10:22 +0000 (00:10 +0100)
committerKay Sievers <kay.sievers@vrfy.org>
Wed, 14 Mar 2007 23:10:22 +0000 (00:10 +0100)
udev_device.c
udev_rules.c

index 1eebd61cc56fc56c7c3c6dbeede8edc7b274f3e2..91fa6554805d6504c6a6060e9d3cd5cbe5b6b158 100644 (file)
@@ -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) {
index 200b4e70242b9b1a6c94879d9d54d5c3a24a615b..7ab3bba71c0361c7433f47b0f05bad28e93fb633 100644 (file)
@@ -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);
                }
        }