aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util-linux/mdev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 8205a260a..e730548f7 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -249,6 +249,10 @@
#endif
+enum {
+ MDEV_OPT_SCAN = 1 << 0,
+};
+
static const char keywords[] ALIGN1 = "add\0remove\0"; // "change\0"
enum { OP_add, OP_remove };
@@ -1047,7 +1051,7 @@ static void signal_mdevs(unsigned my_pid)
}
}
-static void process_action(char *temp, unsigned my_pid)
+static NOINLINE void process_action(char *temp, unsigned my_pid)
{
char *fw;
char *seq;
@@ -1130,6 +1134,7 @@ static void initial_scan(char *temp)
int mdev_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int mdev_main(int argc UNUSED_PARAM, char **argv)
{
+ int opt;
RESERVE_CONFIG_BUFFER(temp, PATH_MAX + SCRATCH_SIZE);
INIT_G();
@@ -1147,7 +1152,9 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
xchdir("/dev");
- if (argv[1] && strcmp(argv[1], "-s") == 0) {
+ opt = getopt32(argv, "s");
+
+ if (opt & MDEV_OPT_SCAN) {
/*
* Scan: mdev -s
*/