summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/usage.h10
-rw-r--r--util-linux/mdev.c34
2 files changed, 25 insertions, 19 deletions
diff --git a/include/usage.h b/include/usage.h
index c36a3bb..7111e90 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -2556,8 +2556,14 @@
#define mdev_full_usage "\n\n" \
" -s Scan /sys and populate /dev during system boot\n" \
"\n" \
- "Called with no options (via hotplug) it uses environment variables\n" \
- "to determine which device to add/remove."
+ "It can be run by kernel as a hotplug helper. To activate it:\n" \
+ " echo /bin/mdev >/proc/sys/kernel/hotplug\n" \
+ USE_FEATURE_MDEV_CONF( \
+ "It uses /etc/mdev.conf with lines\n" \
+ "DEVNAME UID:GID PERM" \
+ USE_FEATURE_MDEV_RENAME(" [>|=PATH]") \
+ USE_FEATURE_MDEV_EXEC(" [@|$|*COMMAND]") \
+ ) \
#define mdev_notes_usage "" \
USE_FEATURE_MDEV_CONFIG( \
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 6eaa66b..584df7d 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -62,13 +62,13 @@ static void make_device(char *path, int delete)
struct bb_uidgid_t ugid = { 0, 0 };
parser_t *parser;
char *tokens[5];
-#endif
-#if ENABLE_FEATURE_MDEV_EXEC
+# if ENABLE_FEATURE_MDEV_EXEC
char *command = NULL;
-#endif
-#if ENABLE_FEATURE_MDEV_RENAME
+# endif
+# if ENABLE_FEATURE_MDEV_RENAME
char *alias = NULL;
char aliaslink = aliaslink; /* for compiler */
+# endif
#endif
char *dev_maj_min = path + strlen(path);
@@ -168,21 +168,21 @@ static void make_device(char *path, int delete)
val = tokens[3];
/* 4th field (opt): >alias */
-#if ENABLE_FEATURE_MDEV_RENAME
+# if ENABLE_FEATURE_MDEV_RENAME
if (!val)
break;
aliaslink = *val;
if (aliaslink == '>' || aliaslink == '=') {
char *s;
-#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
+# if ENABLE_FEATURE_MDEV_RENAME_REGEXP
char *p;
unsigned i, n;
-#endif
+# endif
char *a = val;
s = strchrnul(val, ' ');
val = (s[0] && s[1]) ? s+1 : NULL;
s[0] = '\0';
-#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
+# if ENABLE_FEATURE_MDEV_RENAME_REGEXP
/* substitute %1..9 with off[1..9], if any */
n = 0;
s = a;
@@ -206,13 +206,13 @@ static void make_device(char *path, int delete)
p++;
s++;
}
-#else
+# else
alias = xstrdup(a + 1);
-#endif
+# endif
}
-#endif /* ENABLE_FEATURE_MDEV_RENAME */
+# endif /* ENABLE_FEATURE_MDEV_RENAME */
-#if ENABLE_FEATURE_MDEV_EXEC
+# if ENABLE_FEATURE_MDEV_EXEC
/* The rest (opt): command to run */
if (!val)
break;
@@ -233,7 +233,7 @@ static void make_device(char *path, int delete)
command = xstrdup(val + 1);
}
}
-#endif
+# endif
/* end of field parsing */
break; /* we found matching line, stop */
} /* end of "while line is read from /etc/mdev.conf" */
@@ -255,7 +255,7 @@ static void make_device(char *path, int delete)
#if ENABLE_FEATURE_MDEV_CONF
chown(device_name, ugid.uid, ugid.gid);
-#if ENABLE_FEATURE_MDEV_RENAME
+# if ENABLE_FEATURE_MDEV_RENAME
if (alias) {
alias = build_alias(alias, device_name);
@@ -266,7 +266,7 @@ static void make_device(char *path, int delete)
free(alias);
}
-#endif
+# endif
#endif
}
@@ -406,7 +406,7 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
xchdir("/dev");
- if (argv[1] && !strcmp(argv[1], "-s")) {
+ if (argv[1] && strcmp(argv[1], "-s") == 0) {
/* Scan:
* mdev -s
*/
@@ -501,5 +501,5 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
if (ENABLE_FEATURE_CLEAN_UP)
RELEASE_CONFIG_BUFFER(temp);
- return 0;
+ return EXIT_SUCCESS;
}