From 64643380cacc9e13ebd0f820fd39642b2e950c75 Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Mon, 8 Oct 2012 21:38:50 +0200 Subject: [PATCH] --- yaml --- r: 332925 b: refs/heads/master c: 863472454ce50d4ef0929c6aa738cc5d64b84679 h: refs/heads/master i: 332923: 1f423aeca7d01042ae5caa57f9c308a4386ece09 v: v3 --- [refs] | 2 +- trunk/include/linux/netdevice.h | 3 +++ trunk/net/ipv6/af_inet6.c | 11 ++--------- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index fee2a6b9ed07..8133dea09e0a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 48cc32d38a52d0b68f91a171a8d00531edc6a46e +refs/heads/master: 863472454ce50d4ef0929c6aa738cc5d64b84679 diff --git a/trunk/include/linux/netdevice.h b/trunk/include/linux/netdevice.h index 0a36fff75bd5..561c8bc8976d 100644 --- a/trunk/include/linux/netdevice.h +++ b/trunk/include/linux/netdevice.h @@ -1513,6 +1513,9 @@ struct napi_gro_cb { /* jiffies when first packet was created/queued */ unsigned long age; + + /* Used in ipv6_gro_receive() */ + int proto; }; #define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb) diff --git a/trunk/net/ipv6/af_inet6.c b/trunk/net/ipv6/af_inet6.c index f757e3b7cfbf..a974247a9ae4 100644 --- a/trunk/net/ipv6/af_inet6.c +++ b/trunk/net/ipv6/af_inet6.c @@ -822,13 +822,6 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb, return segs; } -struct ipv6_gro_cb { - struct napi_gro_cb napi; - int proto; -}; - -#define IPV6_GRO_CB(skb) ((struct ipv6_gro_cb *)(skb)->cb) - static struct sk_buff **ipv6_gro_receive(struct sk_buff **head, struct sk_buff *skb) { @@ -874,7 +867,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head, iph = ipv6_hdr(skb); } - IPV6_GRO_CB(skb)->proto = proto; + NAPI_GRO_CB(skb)->proto = proto; flush--; nlen = skb_network_header_len(skb); @@ -930,7 +923,7 @@ static int ipv6_gro_complete(struct sk_buff *skb) sizeof(*iph)); rcu_read_lock(); - ops = rcu_dereference(inet6_protos[IPV6_GRO_CB(skb)->proto]); + ops = rcu_dereference(inet6_protos[NAPI_GRO_CB(skb)->proto]); if (WARN_ON(!ops || !ops->gro_complete)) goto out_unlock;