Commit 8710e261 authored by Antonio Quartulli's avatar Antonio Quartulli

batman-adv: avoid skb_linearise() if not needed

Whenever we want to access headers only, we do not need to linearise the whole
packet. Instead we can use pskb_may_pull()
Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
parent f96a8a0b
...@@ -916,8 +916,9 @@ static int check_unicast_ttvn(struct bat_priv *bat_priv, ...@@ -916,8 +916,9 @@ static int check_unicast_ttvn(struct bat_priv *bat_priv,
/* Check whether I have to reroute the packet */ /* Check whether I have to reroute the packet */
if (seq_before(unicast_packet->ttvn, curr_ttvn) || tt_poss_change) { if (seq_before(unicast_packet->ttvn, curr_ttvn) || tt_poss_change) {
/* Linearize the skb before accessing it */ /* check if there is enough data before accessing it */
if (skb_linearize(skb) < 0) if (pskb_may_pull(skb, sizeof(struct unicast_packet) +
ETH_HLEN) < 0)
return 0; return 0;
ethhdr = (struct ethhdr *)(skb->data + ethhdr = (struct ethhdr *)(skb->data +
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment