diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-19 18:33:04 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:24:41 -0400 |
commit | 98e399f82ab3a6d863d1d4a7ea48925cc91c830e (patch) | |
tree | 5f84043aeec1ec27c2e8e6cc25b5d2e6c3d07343 /include/linux | |
parent | 31713c333ddbb66d694829082620b69b71c4b09a (diff) |
[SK_BUFF]: Introduce skb_mac_header()
For the places where we need a pointer to the mac header, it is still legal to
touch skb->mac.raw directly if just adding to, subtracting from or setting it
to another layer header.
This one also converts some more cases to skb_reset_mac_header() that my
regex missed as it had no spaces before nor after '=', ugh.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/if_ether.h | 2 | ||||
-rw-r--r-- | include/linux/if_tr.h | 2 | ||||
-rw-r--r-- | include/linux/if_vlan.h | 2 | ||||
-rw-r--r-- | include/linux/netfilter_bridge/ebt_802_3.h | 2 | ||||
-rw-r--r-- | include/linux/skbuff.h | 10 |
5 files changed, 14 insertions, 4 deletions
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index ab08f35cbc35..f6863fbcf334 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h | |||
@@ -112,7 +112,7 @@ struct ethhdr { | |||
112 | 112 | ||
113 | static inline struct ethhdr *eth_hdr(const struct sk_buff *skb) | 113 | static inline struct ethhdr *eth_hdr(const struct sk_buff *skb) |
114 | { | 114 | { |
115 | return (struct ethhdr *)skb->mac.raw; | 115 | return (struct ethhdr *)skb_mac_header(skb); |
116 | } | 116 | } |
117 | 117 | ||
118 | #ifdef CONFIG_SYSCTL | 118 | #ifdef CONFIG_SYSCTL |
diff --git a/include/linux/if_tr.h b/include/linux/if_tr.h index 2f94cf2c7abb..046e9d95ba9a 100644 --- a/include/linux/if_tr.h +++ b/include/linux/if_tr.h | |||
@@ -47,7 +47,7 @@ struct trh_hdr { | |||
47 | 47 | ||
48 | static inline struct trh_hdr *tr_hdr(const struct sk_buff *skb) | 48 | static inline struct trh_hdr *tr_hdr(const struct sk_buff *skb) |
49 | { | 49 | { |
50 | return (struct trh_hdr *)skb->mac.raw; | 50 | return (struct trh_hdr *)skb_mac_header(skb); |
51 | } | 51 | } |
52 | #ifdef CONFIG_SYSCTL | 52 | #ifdef CONFIG_SYSCTL |
53 | extern struct ctl_table tr_table[]; | 53 | extern struct ctl_table tr_table[]; |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index d103580c72d2..544490d9d0bd 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -51,7 +51,7 @@ struct vlan_ethhdr { | |||
51 | 51 | ||
52 | static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | 52 | static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) |
53 | { | 53 | { |
54 | return (struct vlan_ethhdr *)skb->mac.raw; | 54 | return (struct vlan_ethhdr *)skb_mac_header(skb); |
55 | } | 55 | } |
56 | 56 | ||
57 | struct vlan_hdr { | 57 | struct vlan_hdr { |
diff --git a/include/linux/netfilter_bridge/ebt_802_3.h b/include/linux/netfilter_bridge/ebt_802_3.h index 07f044ff1a6b..a11b0c2017fd 100644 --- a/include/linux/netfilter_bridge/ebt_802_3.h +++ b/include/linux/netfilter_bridge/ebt_802_3.h | |||
@@ -54,7 +54,7 @@ struct ebt_802_3_hdr { | |||
54 | 54 | ||
55 | static inline struct ebt_802_3_hdr *ebt_802_3_hdr(const struct sk_buff *skb) | 55 | static inline struct ebt_802_3_hdr *ebt_802_3_hdr(const struct sk_buff *skb) |
56 | { | 56 | { |
57 | return (struct ebt_802_3_hdr *)skb->mac.raw; | 57 | return (struct ebt_802_3_hdr *)skb_mac_header(skb); |
58 | } | 58 | } |
59 | #endif | 59 | #endif |
60 | 60 | ||
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 43ab6cbf8446..dff81af454b7 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -960,6 +960,16 @@ 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 unsigned char *skb_mac_header(const struct sk_buff *skb) | ||
964 | { | ||
965 | return skb->mac.raw; | ||
966 | } | ||
967 | |||
968 | static inline int skb_mac_header_was_set(const struct sk_buff *skb) | ||
969 | { | ||
970 | return skb->mac.raw != NULL; | ||
971 | } | ||
972 | |||
963 | static inline void skb_reset_mac_header(struct sk_buff *skb) | 973 | static inline void skb_reset_mac_header(struct sk_buff *skb) |
964 | { | 974 | { |
965 | skb->mac.raw = skb->data; | 975 | skb->mac.raw = skb->data; |