The following commit has been merged in the master branch: commit 7f1b2a091195b47d85576fa72fb97eaa07a4b5b9 Author: Antonio Quartulli ordex@autistici.org Date: Sun Oct 16 20:32:02 2011 +0200
batman-adv: linearise the tt_response skb only if needed
The TT_RESPONSE skb has to be linearised only if the node plans to access the packet payload (so only if the message is directed to that node). In all the other cases the node can avoid this memory operation
Signed-off-by: Antonio Quartulli ordex@autistici.org
diff --git a/routing.c b/routing.c index 60ce407..e0e7b7b 100644 --- a/routing.c +++ b/routing.c @@ -616,13 +616,14 @@ int recv_tt_query(struct sk_buff *skb, struct hard_iface *recv_if) } break; case TT_RESPONSE: - /* packet needs to be linearized to access the TT changes */ - if (skb_linearize(skb) < 0) - goto out; + if (is_my_mac(tt_query->dst)) { + /* packet needs to be linearized to access the TT + * changes */ + if (skb_linearize(skb) < 0) + goto out;
- if (is_my_mac(tt_query->dst)) handle_tt_response(bat_priv, tt_query); - else { + } else { bat_dbg(DBG_TT, bat_priv, "Routing TT_RESPONSE to %pM [%c]\n", tt_query->dst,