On Wednesday, January 20, 2016 14:32:14 Simon Wunderlich wrote:
/**
- batadv_v_ogm_forward - forward an OGM to the given outgoing interface
- batadv_v_ogm_forward - check conditions and forward an OGM to the given
- outgoing interface
- @bat_priv: the bat priv with all the soft interface information
- @ogm_received: previously received OGM to be forwarded
- @throughput: throughput to announce, may vary per outgoing interface
- @neigh_node: the neigh_node through with the OGM has been received
- @if_incoming: the interface on which this OGM was received on
- @if_outgoing: the interface to which the OGM has to be forwarded to
@@ -359,28 +360,55 @@ static u32 batadv_v_forward_penalty(struct batadv_priv *bat_priv, */ static void batadv_v_ogm_forward(struct batadv_priv *bat_priv, const struct batadv_ogm2_packet *ogm_received,
u32 throughput,
struct batadv_neigh_node *neigh_node, struct batadv_hard_iface *if_incoming, struct batadv_hard_iface *if_outgoing)
{
struct batadv_neigh_ifinfo *neigh_ifinfo = NULL;
struct batadv_orig_ifinfo *orig_ifinfo = NULL;
struct batadv_neigh_node *router = NULL; struct batadv_ogm2_packet *ogm_forward; unsigned char *skb_buff; struct sk_buff *skb; size_t packet_len; u16 tvlv_len;
/* only forward for specific interfaces, not for the default one. */
if (if_outgoing != BATADV_IF_DEFAULT)
goto out;
orig_ifinfo = batadv_orig_ifinfo_new(orig_node, if_outgoing);
The variable 'orig_node' isn't defined anywhere in the context of this function. It was passed as an argument to batadv_v_ogm_route_update().
Please recompile with 'make CONFIG_BATMAN_ADV_BATMAN_V=y' and fix all errors and warnings. :-)
- if (!orig_ifinfo)
goto out;
- /* acquire possibly updated router */
- router = batadv_orig_router_get(orig_node, if_outgoing);
A new line between the goto and the comment would be nice to have.
Cheers, Marek