diff options
author | David S. Miller <davem@davemloft.net> | 2018-02-24 00:04:20 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-02-24 00:04:20 -0500 |
commit | f74290fdb363665538743d14c4f00aeacdb68d87 (patch) | |
tree | a5c8f6332f06550e935d1e557ac927302f7f63c4 /net/netfilter/xt_LED.c | |
parent | 1b71af6053af1bd2f849e9fda4f71c1e3f145dcf (diff) | |
parent | 9cb9c07d6b0c5fd97d83b8ab14d7e308ba4b612f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/netfilter/xt_LED.c')
-rw-r--r-- | net/netfilter/xt_LED.c | 16 |
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); |