From: Antonio Quartulli ordex@autistici.org Date: Fri, 2 Dec 2011 18:12:16 +0100
First of all I think you are referring to patch 08/10, in which I moved a skb_linearise() operation.
To be sure it is really needed, I backtracked the code flow and noted down any eventual psbk_may_pull() (or any other linearisation operation). The result is:
=> in batman_skb_recv()
- pskb_may_pull(2)
=> in recv_tt_query() - pskb_may_pull(sizeof(header)) - skb_linearise()
Actually it seems we haven't any useless linearisation. Would you mind explain us where you actually found the problem, please?
It might also be that I misunderstood your advice.
You only need to call pskb_may_pull() on the parts of the packet you want to access directly to parse headers etc.
If you use that interface properly, you never need to linearize, ever.