X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudev-rules.c;h=59fdb71853efa25a539612775bfc490f39348df4;hb=75cb1ac51ea0176926c749bd0f22c19ce8b20e5f;hp=5965723919e56fb0b5bd5611bf267a0cf44ffc5f;hpb=3f896a2abd76972eafe636cac4110608b6d3ff2f;p=elogind.git diff --git a/udev/udev-rules.c b/udev/udev-rules.c index 596572391..59fdb7185 100644 --- a/udev/udev-rules.c +++ b/udev/udev-rules.c @@ -1468,11 +1468,13 @@ static int add_rule(struct udev_rules *rules, char *line, if (op < OP_MATCH_MAX) { rule_add_key(&rule_tmp, TK_M_NAME, op, value, NULL); } else { + if (strcmp(value, "%k") == 0) { + err(rules->udev, "NAME=\"%%k\" is ignored because it breaks kernel supplied names, " + "please remove it from %s:%u\n", filename, lineno); + continue; + } if (value[0] == '\0') - info(rules->udev, "name empty, node creation suppressed\n"); - else if (strcmp(value, "%k") == 0) - err(rules->udev, "NAME=\"%%k\" is superfluous and breaks " - "kernel supplied names, please remove it from %s:%u\n", filename, lineno); + continue; rule_add_key(&rule_tmp, TK_A_NAME, op, value, NULL); } rule_tmp.rule.rule.flags = 1; @@ -2442,6 +2444,8 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event break; } case TK_A_TAG: + if (cur->key.op == OP_ASSIGN || cur->key.op == OP_ASSIGN_FINAL) + udev_device_cleanup_tags_list(event->dev); udev_device_add_tag(event->dev, &rules->buf[cur->key.value_off]); break; case TK_A_NAME: