[v2,1/2] batman-adv: linearise the tt_response only if needed

Message ID 1318425058-715-1-git-send-email-ordex@autistici.org (mailing list archive)
State Accepted, archived
Commit 7f1b2a091195b47d85576fa72fb97eaa07a4b5b9
Headers

Commit Message

Antonio Quartulli Oct. 12, 2011, 1:10 p.m. UTC
  The TT_RESPONSE message can be linearised only if we plan to access the tt
payload (only if the message is directed to me). In all the other cases we can
avoid this memory operation

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---

corrected typo in the commit message

 routing.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
  

Patch

diff --git a/routing.c b/routing.c
index f961cc5..20804f4 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,