Re: [PATCH v2] net: preserve IP control block during GSO segmentation

From: Hannes Frederic Sowa
Date: Thu Jan 14 2016 - 18:23:03 EST


On 14.01.2016 00:36, Florian Westphal wrote:
David Miller <davem@xxxxxxxxxxxxx> wrote:
From: Konstantin Khlebnikov <koct9i@xxxxxxxxx>
Date: Fri, 08 Jan 2016 15:21:46 +0300

Skb_gso_segment() uses skb control block during segmentation.
This patch adds 32-bytes room for previous control block which
will be copied into all resulting segments.

This patch fixes kernel crash during fragmenting forwarded packets.
Fragmentation requires valid IP CB in skb for clearing ip options.
Also patch removes custom save/restore in ovs code, now it's redundant.

Signed-off-by: Konstantin Khlebnikov <koct9i@xxxxxxxxx>
Link: http://lkml.kernel.org/r/CALYGNiP-0MZ-FExV2HutTvE9U-QQtkKSoE--KN=JQE5STYsjAA@xxxxxxxxxxxxxx

If this works I definitely prefer this approach to the other patch
where the CB is copied back and forth.

I quite frankly don't care and just like you to apply one or the other;
use coin toss if needed :-}

I would prefer to use a on-stack state since there is no need to
use skb->cb (no queueing) but when I gave it a try it got out of hand
rather quick :-/

Be careful with the encap counter within SKB_GSO_CB when trying to put it on the stack.

Bye,
Hannes