summaryrefslogtreecommitdiff
path: root/udev/udev_rules.c
diff options
context:
space:
mode:
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>2008-09-28 12:02:44 +0100
committerKay Sievers <kay.sievers@vrfy.org>2008-09-28 14:11:47 +0200
commit41b7a00922bdb1a501cbf2e39282fe64bb94cb6d (patch)
tree2c212da9aa9a2e773a344f11fb9b0de2889aed3f /udev/udev_rules.c
parent669ed8675f7a8bc3987ad501d11f7623b70698e6 (diff)
avoid repeated scans for goto targets (udev_iter_find_label)
The scans are now performed up-front at parse-time, instead of being repeated for each event at run-time. Cachegrind reports a 5% reduction in cpu cycles (excluding the time spent in-kernel).
Diffstat (limited to 'udev/udev_rules.c')
-rw-r--r--udev/udev_rules.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/udev/udev_rules.c b/udev/udev_rules.c
index d4dcb06801..9c37571fb0 100644
--- a/udev/udev_rules.c
+++ b/udev/udev_rules.c
@@ -1529,7 +1529,7 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udevice)
if (rule->goto_label.operation != KEY_OP_UNSET) {
dbg(udevice->udev, "moving forward to label '%s'\n", key_val(rule, &rule->goto_label));
- udev_rules_iter_label(&iter, key_val(rule, &rule->goto_label));
+ udev_rules_iter_goto(&iter, rule->goto_rule_off);
}
}
}
@@ -1609,7 +1609,7 @@ int udev_rules_get_run(struct udev_rules *rules, struct udevice *udevice)
if (rule->goto_label.operation != KEY_OP_UNSET) {
dbg(udevice->udev, "moving forward to label '%s'\n", key_val(rule, &rule->goto_label));
- udev_rules_iter_label(&iter, key_val(rule, &rule->goto_label));
+ udev_rules_iter_goto(&iter, rule->goto_rule_off);
}
}
}