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; |
