summaryrefslogtreecommitdiffstats
path: root/net/batman-adv/vis.c
diff options
context:
space:
mode:
authorAntonio Quartulli <ordex@autistici.org>2012-12-25 13:14:37 +0100
committerAntonio Quartulli <ordex@autistici.org>2013-01-19 14:18:09 +0100
commit7241444209f88f804ea33483394a601c1afb1d64 (patch)
tree28f2b2dae11c5367182eec51d9ad2ff422217406 /net/batman-adv/vis.c
parentipv6: remove unneeded check to pskb_may_pull in ipip6_rcv (diff)
downloadlinux-7241444209f88f804ea33483394a601c1afb1d64.tar.xz
linux-7241444209f88f804ea33483394a601c1afb1d64.zip
batman-adv: a delayed_work has to be initialised once
A delayed_work struct does not need to be initialized each every time before being enqueued. Therefore the INIT_DELAYED_WORK() macro should be used during the initialization process only. Signed-off-by: Antonio Quartulli <ordex@autistici.org> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Diffstat (limited to 'net/batman-adv/vis.c')
-rw-r--r--net/batman-adv/vis.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/net/batman-adv/vis.c b/net/batman-adv/vis.c
index 60eb9b7ca8d1..51e2bf01c919 100644
--- a/net/batman-adv/vis.c
+++ b/net/batman-adv/vis.c
@@ -31,8 +31,6 @@
/* hash class keys */
static struct lock_class_key batadv_vis_hash_lock_class_key;
-static void batadv_start_vis_timer(struct batadv_priv *bat_priv);
-
/* free the info */
static void batadv_free_info(struct kref *ref)
{
@@ -830,7 +828,9 @@ static void batadv_send_vis_packets(struct work_struct *work)
kref_put(&info->refcount, batadv_free_info);
}
spin_unlock_bh(&bat_priv->vis.hash_lock);
- batadv_start_vis_timer(bat_priv);
+
+ queue_delayed_work(batadv_event_workqueue, &bat_priv->vis.work,
+ msecs_to_jiffies(BATADV_VIS_INTERVAL));
}
/* init the vis server. this may only be called when if_list is already
@@ -900,7 +900,11 @@ int batadv_vis_init(struct batadv_priv *bat_priv)
}
spin_unlock_bh(&bat_priv->vis.hash_lock);
- batadv_start_vis_timer(bat_priv);
+
+ INIT_DELAYED_WORK(&bat_priv->vis.work, batadv_send_vis_packets);
+ queue_delayed_work(batadv_event_workqueue, &bat_priv->vis.work,
+ msecs_to_jiffies(BATADV_VIS_INTERVAL));
+
return 0;
free_info:
@@ -937,11 +941,3 @@ void batadv_vis_quit(struct batadv_priv *bat_priv)
bat_priv->vis.my_info = NULL;
spin_unlock_bh(&bat_priv->vis.hash_lock);
}
-
-/* schedule packets for (re)transmission */
-static void batadv_start_vis_timer(struct batadv_priv *bat_priv)
-{
- INIT_DELAYED_WORK(&bat_priv->vis.work, batadv_send_vis_packets);
- queue_delayed_work(batadv_event_workqueue, &bat_priv->vis.work,
- msecs_to_jiffies(BATADV_VIS_INTERVAL));
-}