mdev: remove undocumented subsystem/devname matching hack
No binary (build failed)
—
(log yok)
| @@ -53,7 +53,6 @@ sr[0-9]* root:cdrom 660 @ln -sf $MDEV cdrom | |
| fd[0-9]* root:floppy 660 | |
| # net devices | |
| - | -net/.* root:root 600 @nameif |
| tun[0-9]* root:root 600 =net/ | |
| tap[0-9]* root:root 600 =net/ | |
| @@ -236,7 +236,6 @@ enum { OP_add, OP_remove }; | |
| struct rule { | |
| bool keep_matching; | |
| bool regex_compiled; | |
| - | bool regex_has_slash; |
| mode_t mode; | |
| int maj, min0, min1; | |
| struct bb_uidgid_t ugid; | |
| @@ -340,7 +339,6 @@ static void parse_next_rule(void) | |
| } | |
| xregcomp(&G.cur_rule.match, val, REG_EXTENDED); | |
| G.cur_rule.regex_compiled = 1; | |
| - | G.cur_rule.regex_has_slash = (strchr(val, '/') != NULL); |
| } | |
| /* 2nd field: uid:gid - device ownership */ | |
| @@ -467,7 +465,6 @@ static char *build_alias(char *alias, const char *device_name) | |
| */ | |
| static void make_device(char *device_name, char *path, int operation) | |
| { | |
| - | char *subsystem_slash_devname; |
| int major, minor, type, len; | |
| if (G.verbose) | |
| @@ -511,24 +508,6 @@ static void make_device(char *device_name, char *path, int operation) | |
| if (strstr(path, "/block/") || (G.subsystem && strncmp(G.subsystem, "block", 5) == 0)) | |
| type = S_IFBLK; | |
| - | /* Make path point to "subsystem/device_name" */ |
| - | subsystem_slash_devname = NULL; |
| - | /* Check for coldplug invocations first */ |
| - | if (strncmp(path, "/sys/block/", 11) == 0) /* legacy case */ |
| - | path += sizeof("/sys/") - 1; |
| - | else if (strncmp(path, "/sys/class/", 11) == 0) |
| - | path += sizeof("/sys/class/") - 1; |
| - | else { |
| - | /* Example of a hotplug invocation: |
| - | * SUBSYSTEM="block" |
| - | * DEVPATH="/sys" + "/devices/virtual/mtd/mtd3/mtdblock3" |
| - | * ("/sys" is added by mdev_main) |
| - | * - path does not contain subsystem |
| - | */ |
| - | subsystem_slash_devname = concat_path_file(G.subsystem, device_name); |
| - | path = subsystem_slash_devname; |
| - | } |
| - | |
| #if ENABLE_FEATURE_MDEV_CONF | |
| G.rule_idx = 0; /* restart from the beginning (think mdev -s) */ | |
| #endif | |
| @@ -541,7 +520,7 @@ static void make_device(char *device_name, char *path, int operation) | |
| char *node_name; | |
| const struct rule *rule; | |
| - | str_to_match = ""; |
| + | str_to_match = device_name; |
| rule = next_rule(); | |
| @@ -559,12 +538,8 @@ static void make_device(char *device_name, char *path, int operation) | |
| dbg("getenv('%s'):'%s'", rule->envvar, str_to_match); | |
| if (!str_to_match) | |
| continue; | |
| - | } else { |
| - | //TODO: $DEVNAME can have slashes too, |
| - | // we should stop abusing '/' as a special syntax in our regex'es |
| - | /* regex to match [subsystem/]device_name */ |
| - | str_to_match = (rule->regex_has_slash ? path : device_name); |
| } | |
| + | /* else: str_to_match = device_name */ |
| if (rule->regex_compiled) { | |
| int regex_match = regexec(&rule->match, str_to_match, ARRAY_SIZE(off), off, 0); | |
| @@ -727,8 +702,6 @@ static void make_device(char *device_name, char *path, int operation) | |
| if (!ENABLE_FEATURE_MDEV_CONF || !rule->keep_matching) | |
| break; | |
| } /* for (;;) */ | |
| - | |
| - | free(subsystem_slash_devname); |
| } | |
| /* File callback for /sys/ traversal */ | |