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/core | |
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/core')
-rw-r--r-- | net/core/dev.c | 4 | ||||
-rw-r--r-- | net/core/netpoll.c | 2 | ||||
-rw-r--r-- | net/core/skbuff.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 424d6d0e98f8..2fcaf5bc4a9c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1066,7 +1066,7 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev) | |||
1066 | set by sender, so that the second statement is | 1066 | set by sender, so that the second statement is |
1067 | just protection against buggy protocols. | 1067 | just protection against buggy protocols. |
1068 | */ | 1068 | */ |
1069 | skb2->mac.raw = skb2->data; | 1069 | skb_reset_mac_header(skb2); |
1070 | 1070 | ||
1071 | if (skb2->nh.raw < skb2->data || | 1071 | if (skb2->nh.raw < skb2->data || |
1072 | skb2->nh.raw > skb2->tail) { | 1072 | skb2->nh.raw > skb2->tail) { |
@@ -1206,7 +1206,7 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features) | |||
1206 | 1206 | ||
1207 | BUG_ON(skb_shinfo(skb)->frag_list); | 1207 | BUG_ON(skb_shinfo(skb)->frag_list); |
1208 | 1208 | ||
1209 | skb->mac.raw = skb->data; | 1209 | skb_reset_mac_header(skb); |
1210 | skb->mac_len = skb->nh.raw - skb->data; | 1210 | skb->mac_len = skb->nh.raw - skb->data; |
1211 | __skb_pull(skb, skb->mac_len); | 1211 | __skb_pull(skb, skb->mac_len); |
1212 | 1212 | ||
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 32a9f80b5f19..0ad3896bbf62 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -324,7 +324,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) | |||
324 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); | 324 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); |
325 | 325 | ||
326 | eth = (struct ethhdr *) skb_push(skb, ETH_HLEN); | 326 | eth = (struct ethhdr *) skb_push(skb, ETH_HLEN); |
327 | skb->mac.raw = skb->data; | 327 | skb_reset_mac_header(skb); |
328 | skb->protocol = eth->h_proto = htons(ETH_P_IP); | 328 | skb->protocol = eth->h_proto = htons(ETH_P_IP); |
329 | memcpy(eth->h_source, np->local_mac, 6); | 329 | memcpy(eth->h_source, np->local_mac, 6); |
330 | memcpy(eth->h_dest, np->remote_mac, 6); | 330 | memcpy(eth->h_dest, np->remote_mac, 6); |
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 336958fbbcb2..8f6ebd0d3693 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -1928,7 +1928,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, int features) | |||
1928 | nskb->mac_len = skb->mac_len; | 1928 | nskb->mac_len = skb->mac_len; |
1929 | 1929 | ||
1930 | skb_reserve(nskb, headroom); | 1930 | skb_reserve(nskb, headroom); |
1931 | nskb->mac.raw = nskb->data; | 1931 | skb_reset_mac_header(nskb); |
1932 | nskb->nh.raw = nskb->data + skb->mac_len; | 1932 | nskb->nh.raw = nskb->data + skb->mac_len; |
1933 | nskb->h.raw = nskb->nh.raw + (skb->h.raw - skb->nh.raw); | 1933 | nskb->h.raw = nskb->nh.raw + (skb->h.raw - skb->nh.raw); |
1934 | memcpy(skb_put(nskb, doffset), skb->data, doffset); | 1934 | memcpy(skb_put(nskb, doffset), skb->data, doffset); |