Commit a2b7b148 authored by Sven Eckelmann's avatar Sven Eckelmann Committed by Simon Wunderlich
Browse files

batman-adv: Drop NULL check before dropping references



The check if a batman-adv related object is NULL or not is now directly in
the batadv_*_put functions. It is not needed anymore to perform this check
outside these function:

The changes were generated using a coccinelle semantic patch:

  @@
  expression E;
  @@
  - if (likely(E != NULL))
  (
  batadv_backbone_gw_put
  |
  batadv_claim_put
  |
  batadv_dat_entry_put
  |
  batadv_gw_node_put
  |
  batadv_hardif_neigh_put
  |
  batadv_hardif_put
  |
  batadv_nc_node_put
  |
  batadv_nc_path_put
  |
  batadv_neigh_ifinfo_put
  |
  batadv_neigh_node_put
  |
  batadv_orig_ifinfo_put
  |
  batadv_orig_node_put
  |
  batadv_orig_node_vlan_put
  |
  batadv_softif_vlan_put
  |
  batadv_tp_vars_put
  |
  batadv_tt_global_entry_put
  |
  batadv_tt_local_entry_put
  |
  batadv_tt_orig_list_entry_put
  |
  batadv_tt_req_node_put
  |
  batadv_tvlv_container_put
  |
  batadv_tvlv_handler_put
  )(E);

Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
Signed-off-by: default avatarSimon Wunderlich <sw@simonwunderlich.de>
parent e78783da
Loading
Loading
Loading
Loading
+25 −50
Original line number Diff line number Diff line
@@ -519,7 +519,6 @@ batadv_iv_ogm_can_aggregate(const struct batadv_ogm_packet *new_bat_ogm_packet,
	}

out:
	if (primary_if)
	batadv_hardif_put(primary_if);
	return res;
}
@@ -857,7 +856,6 @@ static void batadv_iv_ogm_schedule_buff(struct batadv_hard_iface *hard_iface)
	rcu_read_unlock();

out:
	if (primary_if)
	batadv_hardif_put(primary_if);
}

@@ -1046,13 +1044,9 @@ batadv_iv_ogm_orig_update(struct batadv_priv *bat_priv,
unlock:
	rcu_read_unlock();
out:
	if (neigh_node)
	batadv_neigh_node_put(neigh_node);
	if (router)
	batadv_neigh_node_put(router);
	if (neigh_ifinfo)
	batadv_neigh_ifinfo_put(neigh_ifinfo);
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);
}

@@ -1194,7 +1188,6 @@ static bool batadv_iv_ogm_calc_tq(struct batadv_orig_node *orig_node,
		ret = true;

out:
	if (neigh_node)
	batadv_neigh_node_put(neigh_node);
	return ret;
}
@@ -1496,15 +1489,10 @@ batadv_iv_ogm_process_per_outif(const struct sk_buff *skb, int ogm_offset,
	if (orig_neigh_node && !is_single_hop_neigh)
		batadv_orig_node_put(orig_neigh_node);
out:
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);
	if (router)
	batadv_neigh_node_put(router);
	if (router_router)
	batadv_neigh_node_put(router_router);
	if (orig_neigh_router)
	batadv_neigh_node_put(orig_neigh_router);
	if (hardif_neigh)
	batadv_hardif_neigh_put(hardif_neigh);

	consume_skb(skb_priv);
@@ -1926,7 +1914,6 @@ batadv_iv_ogm_orig_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
	}

 out:
	if (neigh_node_best)
	batadv_neigh_node_put(neigh_node_best);

	*sub_s = 0;
@@ -2049,9 +2036,7 @@ static bool batadv_iv_ogm_neigh_diff(struct batadv_neigh_node *neigh1,
	*diff = (int)tq1 - (int)tq2;

out:
	if (neigh1_ifinfo)
	batadv_neigh_ifinfo_put(neigh1_ifinfo);
	if (neigh2_ifinfo)
	batadv_neigh_ifinfo_put(neigh2_ifinfo);

	return ret;
@@ -2299,7 +2284,6 @@ batadv_iv_gw_get_best_gw_node(struct batadv_priv *bat_priv)
			if (tmp_gw_factor > max_gw_factor ||
			    (tmp_gw_factor == max_gw_factor &&
			     tq_avg > max_tq)) {
				if (curr_gw)
				batadv_gw_node_put(curr_gw);
				curr_gw = gw_node;
				kref_get(&curr_gw->refcount);
@@ -2314,7 +2298,6 @@ batadv_iv_gw_get_best_gw_node(struct batadv_priv *bat_priv)
			  *     $routing_class more tq points)
			  */
			if (tq_avg > max_tq) {
				if (curr_gw)
				batadv_gw_node_put(curr_gw);
				curr_gw = gw_node;
				kref_get(&curr_gw->refcount);
@@ -2332,7 +2315,6 @@ batadv_iv_gw_get_best_gw_node(struct batadv_priv *bat_priv)

next:
		batadv_neigh_node_put(router);
		if (router_ifinfo)
		batadv_neigh_ifinfo_put(router_ifinfo);
	}
	rcu_read_unlock();
@@ -2397,13 +2379,9 @@ static bool batadv_iv_gw_is_eligible(struct batadv_priv *bat_priv,

	ret = true;
out:
	if (router_gw_ifinfo)
	batadv_neigh_ifinfo_put(router_gw_ifinfo);
	if (router_orig_ifinfo)
	batadv_neigh_ifinfo_put(router_orig_ifinfo);
	if (router_gw)
	batadv_neigh_node_put(router_gw);
	if (router_orig)
	batadv_neigh_node_put(router_orig);

	return ret;
@@ -2479,11 +2457,8 @@ static int batadv_iv_gw_dump_entry(struct sk_buff *msg, u32 portid,
	ret = 0;

out:
	if (curr_gw)
	batadv_gw_node_put(curr_gw);
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);
	if (router)
	batadv_neigh_node_put(router);
	return ret;
}
+10 −20
Original line number Diff line number Diff line
@@ -106,7 +106,6 @@ static void batadv_v_iface_update_mac(struct batadv_hard_iface *hard_iface)

	batadv_v_primary_iface_set(hard_iface);
out:
	if (primary_if)
	batadv_hardif_put(primary_if);
}

@@ -366,7 +365,6 @@ batadv_v_orig_dump_entry(struct sk_buff *msg, u32 portid, u32 seq,
	}

 out:
	if (neigh_node_best)
	batadv_neigh_node_put(neigh_node_best);

	*sub_s = 0;
@@ -568,9 +566,7 @@ static int batadv_v_gw_throughput_get(struct batadv_gw_node *gw_node, u32 *bw)

	ret = 0;
out:
	if (router)
	batadv_neigh_node_put(router);
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);

	return ret;
@@ -599,7 +595,6 @@ batadv_v_gw_get_best_gw_node(struct batadv_priv *bat_priv)
		if (curr_gw && bw <= max_bw)
			goto next;

		if (curr_gw)
		batadv_gw_node_put(curr_gw);

		curr_gw = gw_node;
@@ -662,9 +657,7 @@ static bool batadv_v_gw_is_eligible(struct batadv_priv *bat_priv,

	ret = true;
out:
	if (curr_gw)
	batadv_gw_node_put(curr_gw);
	if (orig_gw)
	batadv_gw_node_put(orig_gw);

	return ret;
@@ -764,11 +757,8 @@ static int batadv_v_gw_dump_entry(struct sk_buff *msg, u32 portid,
	ret = 0;

out:
	if (curr_gw)
	batadv_gw_node_put(curr_gw);
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);
	if (router)
	batadv_neigh_node_put(router);
	return ret;
}
+3 −6
Original line number Diff line number Diff line
@@ -486,13 +486,10 @@ static void batadv_v_elp_neigh_update(struct batadv_priv *bat_priv,
	hardif_neigh->bat_v.elp_interval = ntohl(elp_packet->elp_interval);

hardif_free:
	if (hardif_neigh)
	batadv_hardif_neigh_put(hardif_neigh);
neigh_free:
	if (neigh)
	batadv_neigh_node_put(neigh);
orig_free:
	if (orig_neigh)
	batadv_orig_node_put(orig_neigh);
}

+13 −26
Original line number Diff line number Diff line
@@ -584,11 +584,8 @@ static void batadv_v_ogm_forward(struct batadv_priv *bat_priv,
	batadv_v_ogm_queue_on_if(skb, if_outgoing);

out:
	if (orig_ifinfo)
	batadv_orig_ifinfo_put(orig_ifinfo);
	if (router)
	batadv_neigh_node_put(router);
	if (neigh_ifinfo)
	batadv_neigh_ifinfo_put(neigh_ifinfo);
}

@@ -669,9 +666,7 @@ static int batadv_v_ogm_metric_update(struct batadv_priv *bat_priv,
	else
		ret = 0;
out:
	if (orig_ifinfo)
	batadv_orig_ifinfo_put(orig_ifinfo);
	if (neigh_ifinfo)
	batadv_neigh_ifinfo_put(neigh_ifinfo);

	return ret;
@@ -763,15 +758,10 @@ static bool batadv_v_ogm_route_update(struct batadv_priv *bat_priv,

	batadv_update_route(bat_priv, orig_node, if_outgoing, neigh_node);
out:
	if (router)
	batadv_neigh_node_put(router);
	if (orig_neigh_router)
	batadv_neigh_node_put(orig_neigh_router);
	if (orig_neigh_node)
	batadv_orig_node_put(orig_neigh_node);
	if (router_ifinfo)
	batadv_neigh_ifinfo_put(router_ifinfo);
	if (neigh_ifinfo)
	batadv_neigh_ifinfo_put(neigh_ifinfo);

	return forward;
@@ -978,11 +968,8 @@ static void batadv_v_ogm_process(const struct sk_buff *skb, int ogm_offset,
	}
	rcu_read_unlock();
out:
	if (orig_node)
	batadv_orig_node_put(orig_node);
	if (neigh_node)
	batadv_neigh_node_put(neigh_node);
	if (hardif_neigh)
	batadv_hardif_neigh_put(hardif_neigh);
}

+9 −18
Original line number Diff line number Diff line
@@ -445,7 +445,6 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,

	netif_rx_any_context(skb);
out:
	if (primary_if)
	batadv_hardif_put(primary_if);
}

@@ -1504,7 +1503,6 @@ static void batadv_bla_periodic_work(struct work_struct *work)
		rcu_read_unlock();
	}
out:
	if (primary_if)
	batadv_hardif_put(primary_if);

	queue_delayed_work(batadv_event_workqueue, &bat_priv->bla.work,
@@ -1814,7 +1812,6 @@ void batadv_bla_free(struct batadv_priv *bat_priv)
		batadv_hash_destroy(bat_priv->bla.backbone_hash);
		bat_priv->bla.backbone_hash = NULL;
	}
	if (primary_if)
	batadv_hardif_put(primary_if);
}

@@ -2002,9 +1999,7 @@ bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
	ret = true;

out:
	if (primary_if)
	batadv_hardif_put(primary_if);
	if (claim)
	batadv_claim_put(claim);
	return ret;
}
@@ -2109,9 +2104,7 @@ bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
handled:
	ret = true;
out:
	if (primary_if)
	batadv_hardif_put(primary_if);
	if (claim)
	batadv_claim_put(claim);
	return ret;
}
@@ -2277,7 +2270,6 @@ int batadv_bla_claim_dump(struct sk_buff *msg, struct netlink_callback *cb)
	ret = msg->len;

out:
	if (primary_if)
	batadv_hardif_put(primary_if);

	dev_put(soft_iface);
@@ -2448,7 +2440,6 @@ int batadv_bla_backbone_dump(struct sk_buff *msg, struct netlink_callback *cb)
	ret = msg->len;

out:
	if (primary_if)
	batadv_hardif_put(primary_if);

	dev_put(soft_iface);
Loading