When setting up the first skb in a gro list we ensure that all the headers up to skb_gro_offset have been pulled into head. In subsequent uses of this skb (e.g. determining same_flow) it is assumed that the headers can be accessed in the skb head.
Signed-off-by: Tom Herbert <t...@herbertland.com> --- net/core/dev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 6778a99..05e0e37 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4228,6 +4228,10 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff } else { napi->gro_count++; } + + /* Ensure all headers are pulled into head for 1st skb */ + skb_gro_header_slow(skb, skb_gro_offset(skb), 0); + NAPI_GRO_CB(skb)->count = 1; NAPI_GRO_CB(skb)->age = jiffies; NAPI_GRO_CB(skb)->last = skb; -- 1.8.1 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html