chiark / gitweb /
[PATCH] fix UDEV_NO_SLEEP
[elogind.git] / udev-add.c
index 5dc46cf2a71ecf87d15512b475b29fab9e293a19..1f693297882430fa9f88c86ec958eff95b203022 100644 (file)
@@ -316,7 +316,7 @@ error:
        return -1;
 }
 
-static struct sysfs_class_device *get_class_dev(char *device_name)
+static struct sysfs_class_device *get_class_dev(const char *device_name)
 {
        char dev_path[SYSFS_PATH_MAX];
        struct sysfs_class_device *class_dev = NULL;
@@ -341,7 +341,7 @@ exit:
  * If it doesn't happen in about 10 seconds, give up.
  */
 #define SECONDS_TO_WAIT_FOR_FILE       10
-static int sleep_for_file(char *path, char* file)
+static int sleep_for_file(const char *path, char* file)
 {
        char filename[SYSFS_PATH_MAX + 6];
        int loop = SECONDS_TO_WAIT_FOR_FILE;
@@ -395,7 +395,7 @@ static int rename_net_if(struct udevice *dev, int fake)
        return retval;
 }
 
-int udev_add_device(char *path, char *subsystem, int fake)
+int udev_add_device(const char *path, const char *subsystem, int fake)
 {
        struct sysfs_class_device *class_dev;
        struct udevice dev;
@@ -453,6 +453,7 @@ int udev_add_device(char *path, char *subsystem, int fake)
                break;
 
        case 'n':
+               strfieldcpy(devpath, path);
                if (strcmp(dev.name, dev.kernel_name) != 0) {
                        retval = rename_net_if(&dev, fake);
                        if (retval != 0)
@@ -460,7 +461,6 @@ int udev_add_device(char *path, char *subsystem, int fake)
                        /* netif's are keyed with the configured name, cause
                         * the original kernel name sleeps with the fishes
                         */
-                       strfieldcpy(devpath, path);
                        pos = strrchr(devpath, '/');
                        if (pos != NULL) {
                                pos[1] = '\0';