aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv
diff options
context:
space:
mode:
Diffstat (limited to 'net/batman-adv')
-rw-r--r--net/batman-adv/gateway_client.c3
-rw-r--r--net/batman-adv/unicast.c5
2 files changed, 5 insertions, 3 deletions
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index a3e842fd0f9c..41eba8a660f5 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -54,6 +54,9 @@ void *gw_get_selected(struct bat_priv *bat_priv)
54 54
55 orig_node = curr_gateway_tmp->orig_node; 55 orig_node = curr_gateway_tmp->orig_node;
56 56
57 if (orig_node)
58 kref_get(&orig_node->refcount);
59
57out: 60out:
58 rcu_read_unlock(); 61 rcu_read_unlock();
59 return orig_node; 62 return orig_node;
diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
index 7ca994ccac1d..0603ceaeef62 100644
--- a/net/batman-adv/unicast.c
+++ b/net/batman-adv/unicast.c
@@ -293,10 +293,9 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
293 spin_lock_bh(&bat_priv->orig_hash_lock); 293 spin_lock_bh(&bat_priv->orig_hash_lock);
294 294
295 /* get routing information */ 295 /* get routing information */
296 if (is_multicast_ether_addr(ethhdr->h_dest)) 296 if (is_multicast_ether_addr(ethhdr->h_dest)) {
297 orig_node = (struct orig_node *)gw_get_selected(bat_priv); 297 orig_node = (struct orig_node *)gw_get_selected(bat_priv);
298 if (orig_node) { 298 if (orig_node)
299 kref_get(&orig_node->refcount);
300 goto find_router; 299 goto find_router;
301 } 300 }
302 301