aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/ip.h9
-rw-r--r--include/linux/skbuff.h1
-rw-r--r--include/net/inet_ecn.h2
-rw-r--r--include/net/ip.h2
-rw-r--r--include/net/pkt_cls.h4
5 files changed, 13 insertions, 5 deletions
diff --git a/include/linux/ip.h b/include/linux/ip.h
index 1d36b971a8b5..f2f26db16f57 100644
--- a/include/linux/ip.h
+++ b/include/linux/ip.h
@@ -104,6 +104,15 @@ struct iphdr {
104 /*The options start here. */ 104 /*The options start here. */
105}; 105};
106 106
107#ifdef __KERNEL__
108#include <linux/skbuff.h>
109
110static inline struct iphdr *ip_hdr(const struct sk_buff *skb)
111{
112 return (struct iphdr *)skb_network_header(skb);
113}
114#endif
115
107struct ip_auth_hdr { 116struct ip_auth_hdr {
108 __u8 nexthdr; 117 __u8 nexthdr;
109 __u8 hdrlen; /* This one is measured in 32 bit units! */ 118 __u8 hdrlen; /* This one is measured in 32 bit units! */
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 870438fba93f..62f841b5b700 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -247,7 +247,6 @@ struct sk_buff {
247 } h; 247 } h;
248 248
249 union { 249 union {
250 struct iphdr *iph;
251 struct ipv6hdr *ipv6h; 250 struct ipv6hdr *ipv6h;
252 struct arphdr *arph; 251 struct arphdr *arph;
253 unsigned char *raw; 252 unsigned char *raw;
diff --git a/include/net/inet_ecn.h b/include/net/inet_ecn.h
index b9ed3898e368..6fd4452c15d9 100644
--- a/include/net/inet_ecn.h
+++ b/include/net/inet_ecn.h
@@ -116,7 +116,7 @@ static inline int INET_ECN_set_ce(struct sk_buff *skb)
116 case __constant_htons(ETH_P_IP): 116 case __constant_htons(ETH_P_IP):
117 if (skb_network_header(skb) + sizeof(struct iphdr) <= 117 if (skb_network_header(skb) + sizeof(struct iphdr) <=
118 skb->tail) 118 skb->tail)
119 return IP_ECN_set_ce(skb->nh.iph); 119 return IP_ECN_set_ce(ip_hdr(skb));
120 break; 120 break;
121 121
122 case __constant_htons(ETH_P_IPV6): 122 case __constant_htons(ETH_P_IPV6):
diff --git a/include/net/ip.h b/include/net/ip.h
index 6f7ba32b199d..75f226d26e0d 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -46,7 +46,7 @@ struct inet_skb_parm
46 46
47static inline unsigned int ip_hdrlen(const struct sk_buff *skb) 47static inline unsigned int ip_hdrlen(const struct sk_buff *skb)
48{ 48{
49 return skb->nh.iph->ihl * 4; 49 return ip_hdr(skb)->ihl * 4;
50} 50}
51 51
52struct ipcm_cookie 52struct ipcm_cookie
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
index 8a6b0e7bded5..880eb7b54164 100644
--- a/include/net/pkt_cls.h
+++ b/include/net/pkt_cls.h
@@ -334,8 +334,8 @@ static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer)
334 return NULL; 334 return NULL;
335} 335}
336 336
337static inline int tcf_valid_offset(struct sk_buff *skb, unsigned char *ptr, 337static inline int tcf_valid_offset(const struct sk_buff *skb,
338 int len) 338 const unsigned char *ptr, const int len)
339{ 339{
340 return unlikely((ptr + len) < skb->tail && ptr > skb->head); 340 return unlikely((ptr + len) < skb->tail && ptr > skb->head);
341} 341}