net: rps: fix the wrong network header pointer

__skb_get_rxhash() was broken after the commit:

 commit bfb564e739
 Author: Krishna Kumar <krkumar2@in.ibm.com>
 Date:   Wed Aug 4 06:15:52 2010 +0000

 core: Factor out flow calculation from get_rps_cpu

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Changli Gao 2010-08-21 06:13:28 +00:00 коммит произвёл David S. Miller
Родитель eb4d406545
Коммит 1003489e06
1 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -2283,7 +2283,7 @@ __u32 __skb_get_rxhash(struct sk_buff *skb)
if (!pskb_may_pull(skb, sizeof(*ip) + nhoff)) if (!pskb_may_pull(skb, sizeof(*ip) + nhoff))
goto done; goto done;
ip = (struct iphdr *) skb->data + nhoff; ip = (struct iphdr *) (skb->data + nhoff);
if (ip->frag_off & htons(IP_MF | IP_OFFSET)) if (ip->frag_off & htons(IP_MF | IP_OFFSET))
ip_proto = 0; ip_proto = 0;
else else
@ -2296,7 +2296,7 @@ __u32 __skb_get_rxhash(struct sk_buff *skb)
if (!pskb_may_pull(skb, sizeof(*ip6) + nhoff)) if (!pskb_may_pull(skb, sizeof(*ip6) + nhoff))
goto done; goto done;
ip6 = (struct ipv6hdr *) skb->data + nhoff; ip6 = (struct ipv6hdr *) (skb->data + nhoff);
ip_proto = ip6->nexthdr; ip_proto = ip6->nexthdr;
addr1 = (__force u32) ip6->saddr.s6_addr32[3]; addr1 = (__force u32) ip6->saddr.s6_addr32[3];
addr2 = (__force u32) ip6->daddr.s6_addr32[3]; addr2 = (__force u32) ip6->daddr.s6_addr32[3];