aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/xt_LED.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2018-02-26 08:39:26 +0100
committerIngo Molnar <mingo@kernel.org>2018-02-26 08:41:15 +0100
commit3f7df3efeb415610d27aecc282ff96d4a22f0168 (patch)
tree0f66382746a1311043a25320243ff5f4b10c282e /net/netfilter/xt_LED.c
parentx86/mm: Optimize boot-time paging mode switching cost (diff)
parentLinux 4.16-rc3 (diff)
downloadlinux-3f7df3efeb415610d27aecc282ff96d4a22f0168.tar.gz
linux-3f7df3efeb415610d27aecc282ff96d4a22f0168.zip
Merge tag 'v4.16-rc3' into x86/mm, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/netfilter/xt_LED.c')
-rw-r--r--net/netfilter/xt_LED.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/net/netfilter/xt_LED.c b/net/netfilter/xt_LED.c
index 1dcad893df78..19846445504d 100644
--- a/net/netfilter/xt_LED.c
+++ b/net/netfilter/xt_LED.c
@@ -111,10 +111,8 @@ static int led_tg_check(const struct xt_tgchk_param *par)
struct xt_led_info_internal *ledinternal;
int err;
- if (ledinfo->id[0] == '\0') {
- pr_info("No 'id' parameter given.\n");
+ if (ledinfo->id[0] == '\0')
return -EINVAL;
- }
mutex_lock(&xt_led_mutex);
@@ -138,13 +136,14 @@ static int led_tg_check(const struct xt_tgchk_param *par)
err = led_trigger_register(&ledinternal->netfilter_led_trigger);
if (err) {
- pr_err("Trigger name is already in use.\n");
+ pr_info_ratelimited("Trigger name is already in use.\n");
goto exit_alloc;
}
- /* See if we need to set up a timer */
- if (ledinfo->delay > 0)
- timer_setup(&ledinternal->timer, led_timeout_callback, 0);
+ /* Since the letinternal timer can be shared between multiple targets,
+ * always set it up, even if the current target does not need it
+ */
+ timer_setup(&ledinternal->timer, led_timeout_callback, 0);
list_add_tail(&ledinternal->list, &xt_led_triggers);
@@ -181,8 +180,7 @@ static void led_tg_destroy(const struct xt_tgdtor_param *par)
list_del(&ledinternal->list);
- if (ledinfo->delay > 0)
- del_timer_sync(&ledinternal->timer);
+ del_timer_sync(&ledinternal->timer);
led_trigger_unregister(&ledinternal->netfilter_led_trigger);