diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index 3ddd66e4c29e..a25c644acd6c 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c @@ -188,6 +188,10 @@ int batadv_mesh_init(struct net_device *soft_iface) INIT_HLIST_HEAD(&bat_priv->softif_vlan_list); INIT_HLIST_HEAD(&bat_priv->tp_list); +#ifdef CONFIG_BATMAN_ADV_NC + INIT_DELAYED_WORK(&bat_priv->nc.work, batadv_nc_worker); +#endif + bat_priv->gw.generation = 0; ret = batadv_v_mesh_init(bat_priv); diff --git a/net/batman-adv/network-coding.c b/net/batman-adv/network-coding.c index 9f06132e007d..eafd9936e021 100644 --- a/net/batman-adv/network-coding.c +++ b/net/batman-adv/network-coding.c @@ -47,7 +47,6 @@ static struct lock_class_key batadv_nc_coding_hash_lock_class_key; static struct lock_class_key batadv_nc_decoding_hash_lock_class_key; -static void batadv_nc_worker(struct work_struct *work); static int batadv_nc_recv_coded_packet(struct sk_buff *skb, struct batadv_hard_iface *recv_if); @@ -158,7 +157,6 @@ int batadv_nc_mesh_init(struct batadv_priv *bat_priv) batadv_hash_set_lock_class(bat_priv->nc.decoding_hash, &batadv_nc_decoding_hash_lock_class_key); - INIT_DELAYED_WORK(&bat_priv->nc.work, batadv_nc_worker); batadv_nc_start_timer(bat_priv); batadv_tvlv_handler_register(bat_priv, batadv_nc_tvlv_ogm_handler_v1, @@ -707,7 +705,7 @@ batadv_nc_process_nc_paths(struct batadv_priv *bat_priv, * coding * @work: kernel work struct */ -static void batadv_nc_worker(struct work_struct *work) +void batadv_nc_worker(struct work_struct *work) { struct delayed_work *delayed_work; struct batadv_priv_nc *priv_nc; diff --git a/net/batman-adv/network-coding.h b/net/batman-adv/network-coding.h index 368cc3130e4c..cfcd1223a92b 100644 --- a/net/batman-adv/network-coding.h +++ b/net/batman-adv/network-coding.h @@ -37,6 +37,7 @@ void batadv_nc_skb_store_for_decoding(struct batadv_priv *bat_priv, struct sk_buff *skb); void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv, struct sk_buff *skb); +void batadv_nc_worker(struct work_struct *work); #else /* ifdef CONFIG_BATMAN_ADV_NC */ @@ -58,6 +59,10 @@ static inline void batadv_nc_mesh_free(struct batadv_priv *bat_priv) { } +static inline void batadv_nc_worker(struct work_struct *work) +{ +} + static inline void batadv_nc_update_nc_node(struct batadv_priv *bat_priv, struct batadv_orig_node *orig_node,