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 /include | |
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 'include')
-rw-r--r-- | include/linux/hdlc.h | 4 | ||||
-rw-r--r-- | include/linux/skbuff.h | 5 | ||||
-rw-r--r-- | include/net/ax25.h | 2 | ||||
-rw-r--r-- | include/net/x25device.h | 2 |
4 files changed, 9 insertions, 4 deletions
diff --git a/include/linux/hdlc.h b/include/linux/hdlc.h index d4b333938f73..0fe562af9c8c 100644 --- a/include/linux/hdlc.h +++ b/include/linux/hdlc.h | |||
@@ -132,8 +132,8 @@ static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb, | |||
132 | { | 132 | { |
133 | hdlc_device *hdlc = dev_to_hdlc(dev); | 133 | hdlc_device *hdlc = dev_to_hdlc(dev); |
134 | 134 | ||
135 | skb->mac.raw = skb->data; | 135 | skb->dev = dev; |
136 | skb->dev = dev; | 136 | skb_reset_mac_header(skb); |
137 | 137 | ||
138 | if (hdlc->proto->type_trans) | 138 | if (hdlc->proto->type_trans) |
139 | return hdlc->proto->type_trans(skb, dev); | 139 | return hdlc->proto->type_trans(skb, dev); |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index df229bd5f1a9..748f254b50cc 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -960,6 +960,11 @@ static inline void skb_reserve(struct sk_buff *skb, int len) | |||
960 | skb->tail += len; | 960 | skb->tail += len; |
961 | } | 961 | } |
962 | 962 | ||
963 | static inline void skb_reset_mac_header(struct sk_buff *skb) | ||
964 | { | ||
965 | skb->mac.raw = skb->data; | ||
966 | } | ||
967 | |||
963 | /* | 968 | /* |
964 | * CPUs often take a performance hit when accessing unaligned memory | 969 | * CPUs often take a performance hit when accessing unaligned memory |
965 | * locations. The actual performance hit varies, it can be small if the | 970 | * locations. The actual performance hit varies, it can be small if the |
diff --git a/include/net/ax25.h b/include/net/ax25.h index 47ff2f46e908..99a4e364c74a 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -263,8 +263,8 @@ static __inline__ void ax25_cb_put(ax25_cb *ax25) | |||
263 | static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev) | 263 | static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev) |
264 | { | 264 | { |
265 | skb->dev = dev; | 265 | skb->dev = dev; |
266 | skb_reset_mac_header(skb); | ||
266 | skb->pkt_type = PACKET_HOST; | 267 | skb->pkt_type = PACKET_HOST; |
267 | skb->mac.raw = skb->data; | ||
268 | return htons(ETH_P_AX25); | 268 | return htons(ETH_P_AX25); |
269 | } | 269 | } |
270 | 270 | ||
diff --git a/include/net/x25device.h b/include/net/x25device.h index 1d10c879f7e2..1415bcf93980 100644 --- a/include/net/x25device.h +++ b/include/net/x25device.h | |||
@@ -7,8 +7,8 @@ | |||
7 | 7 | ||
8 | static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev) | 8 | static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev) |
9 | { | 9 | { |
10 | skb->mac.raw = skb->data; | ||
11 | skb->dev = dev; | 10 | skb->dev = dev; |
11 | skb_reset_mac_header(skb); | ||
12 | skb->pkt_type = PACKET_HOST; | 12 | skb->pkt_type = PACKET_HOST; |
13 | 13 | ||
14 | return htons(ETH_P_X25); | 14 | return htons(ETH_P_X25); |