diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-04-10 23:45:18 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:24:46 -0400 |
commit | c1d2bbe1cd6c7bbdc6d532cefebb66c7efb789ce (patch) | |
tree | 03a715961ba576a11cbc0e91c5d465e4c4d95d82 /net/core | |
parent | 57effc70a5be9f7804e9a99964eb7265367effca (diff) |
[SK_BUFF]: Introduce skb_reset_network_header(skb)
For the common, open coded 'skb->nh.raw = skb->data' operation, so that we can
later turn skb->nh.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 | 5 | ||||
-rw-r--r-- | net/core/netpoll.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 560560fe3064..1b0758254ba0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1074,7 +1074,7 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev) | |||
1074 | printk(KERN_CRIT "protocol %04x is " | 1074 | printk(KERN_CRIT "protocol %04x is " |
1075 | "buggy, dev %s\n", | 1075 | "buggy, dev %s\n", |
1076 | skb2->protocol, dev->name); | 1076 | skb2->protocol, dev->name); |
1077 | skb2->nh.raw = skb2->data; | 1077 | skb_reset_network_header(skb2); |
1078 | } | 1078 | } |
1079 | 1079 | ||
1080 | skb2->h.raw = skb2->nh.raw; | 1080 | skb2->h.raw = skb2->nh.raw; |
@@ -1771,7 +1771,8 @@ int netif_receive_skb(struct sk_buff *skb) | |||
1771 | 1771 | ||
1772 | __get_cpu_var(netdev_rx_stat).total++; | 1772 | __get_cpu_var(netdev_rx_stat).total++; |
1773 | 1773 | ||
1774 | skb->h.raw = skb->nh.raw = skb->data; | 1774 | skb_reset_network_header(skb); |
1775 | skb->h.raw = skb->data; | ||
1775 | skb->mac_len = skb->nh.raw - skb->mac.raw; | 1776 | skb->mac_len = skb->nh.raw - skb->mac.raw; |
1776 | 1777 | ||
1777 | pt_prev = NULL; | 1778 | pt_prev = NULL; |
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 0ad3896bbf62..b4d1cdd58f11 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -359,7 +359,8 @@ static void arp_reply(struct sk_buff *skb) | |||
359 | (2 * sizeof(u32))))) | 359 | (2 * sizeof(u32))))) |
360 | return; | 360 | return; |
361 | 361 | ||
362 | skb->h.raw = skb->nh.raw = skb->data; | 362 | skb_reset_network_header(skb); |
363 | skb->h.raw = skb->data; | ||
363 | arp = skb->nh.arph; | 364 | arp = skb->nh.arph; |
364 | 365 | ||
365 | if ((arp->ar_hrd != htons(ARPHRD_ETHER) && | 366 | if ((arp->ar_hrd != htons(ARPHRD_ETHER) && |
@@ -389,7 +390,7 @@ static void arp_reply(struct sk_buff *skb) | |||
389 | if (!send_skb) | 390 | if (!send_skb) |
390 | return; | 391 | return; |
391 | 392 | ||
392 | send_skb->nh.raw = send_skb->data; | 393 | skb_reset_network_header(send_skb); |
393 | arp = (struct arphdr *) skb_put(send_skb, size); | 394 | arp = (struct arphdr *) skb_put(send_skb, size); |
394 | send_skb->dev = skb->dev; | 395 | send_skb->dev = skb->dev; |
395 | send_skb->protocol = htons(ETH_P_ARP); | 396 | send_skb->protocol = htons(ETH_P_ARP); |