diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-19 18:30:44 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:24:32 -0400 |
commit | 459a98ed881802dee55897441bc7f77af614368e (patch) | |
tree | b81f76632d8f2e21eb91ec3d885091a98398d93e /net/ipv4 | |
parent | 4c13eb6657fe9ef7b4dc8f1a405c902e9e5234e0 (diff) |
[SK_BUFF]: Introduce skb_reset_mac_header(skb)
For the common, open coded 'skb->mac.raw = skb->data' operation, so that we can
later turn skb->mac.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.
This one touches just the most simple case, next will handle the slightly more
"complex" cases.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_gre.c | 2 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 2 | ||||
-rw-r--r-- | net/ipv4/route.c | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index 9151da642318..88f8aae873f4 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c | |||
@@ -616,7 +616,7 @@ static int ipgre_rcv(struct sk_buff *skb) | |||
616 | offset += 4; | 616 | offset += 4; |
617 | } | 617 | } |
618 | 618 | ||
619 | skb->mac.raw = skb->nh.raw; | 619 | skb_reset_mac_header(skb); |
620 | skb->nh.raw = __pskb_pull(skb, offset); | 620 | skb->nh.raw = __pskb_pull(skb, offset); |
621 | skb_postpull_rcsum(skb, skb->h.raw, offset); | 621 | skb_postpull_rcsum(skb, skb->h.raw, offset); |
622 | skb->pkt_type = PACKET_HOST; | 622 | skb->pkt_type = PACKET_HOST; |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 5db301b33372..ddba857bd243 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -95,7 +95,7 @@ __inline__ void ip_send_check(struct iphdr *iph) | |||
95 | /* dev_loopback_xmit for use with netfilter. */ | 95 | /* dev_loopback_xmit for use with netfilter. */ |
96 | static int ip_dev_loopback_xmit(struct sk_buff *newskb) | 96 | static int ip_dev_loopback_xmit(struct sk_buff *newskb) |
97 | { | 97 | { |
98 | newskb->mac.raw = newskb->data; | 98 | skb_reset_mac_header(newskb); |
99 | __skb_pull(newskb, newskb->nh.raw - newskb->data); | 99 | __skb_pull(newskb, newskb->nh.raw - newskb->data); |
100 | newskb->pkt_type = PACKET_LOOPBACK; | 100 | newskb->pkt_type = PACKET_LOOPBACK; |
101 | newskb->ip_summed = CHECKSUM_UNNECESSARY; | 101 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 0b3d7bf40f4e..29ee7be45aa6 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -2747,7 +2747,8 @@ int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void *arg) | |||
2747 | /* Reserve room for dummy headers, this skb can pass | 2747 | /* Reserve room for dummy headers, this skb can pass |
2748 | through good chunk of routing engine. | 2748 | through good chunk of routing engine. |
2749 | */ | 2749 | */ |
2750 | skb->mac.raw = skb->nh.raw = skb->data; | 2750 | skb_reset_mac_header(skb); |
2751 | skb->nh.raw = skb->data; | ||
2751 | 2752 | ||
2752 | /* Bugfix: need to give ip_route_input enough of an IP header to not gag. */ | 2753 | /* Bugfix: need to give ip_route_input enough of an IP header to not gag. */ |
2753 | skb->nh.iph->protocol = IPPROTO_ICMP; | 2754 | skb->nh.iph->protocol = IPPROTO_ICMP; |