Merge branch 'e1000-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[pandora-kernel.git] / include / net / pkt_cls.h
index b902d24..4129df7 100644 (file)
@@ -326,18 +326,18 @@ static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer)
                case TCF_LAYER_LINK:
                        return skb->data;
                case TCF_LAYER_NETWORK:
-                       return skb->nh.raw;
+                       return skb_network_header(skb);
                case TCF_LAYER_TRANSPORT:
-                       return skb->h.raw;
+                       return skb_transport_header(skb);
        }
 
        return NULL;
 }
 
-static inline int tcf_valid_offset(struct sk_buff *skb, unsigned char *ptr,
-                                  int len)
+static inline int tcf_valid_offset(const struct sk_buff *skb,
+                                  const unsigned char *ptr, const int len)
 {
-       return unlikely((ptr + len) < skb->tail && ptr > skb->head);
+       return unlikely((ptr + len) < skb_tail_pointer(skb) && ptr > skb->head);
 }
 
 #ifdef CONFIG_NET_CLS_IND
@@ -352,10 +352,13 @@ tcf_change_indev(struct tcf_proto *tp, char *indev, struct rtattr *indev_tlv)
 static inline int
 tcf_match_indev(struct sk_buff *skb, char *indev)
 {
+       struct net_device *dev;
+
        if (indev[0]) {
-               if  (!skb->input_dev)
+               if  (!skb->iif)
                        return 0;
-               if (strcmp(indev, skb->input_dev->name))
+               dev = __dev_get_by_index(skb->iif);
+               if (!dev || strcmp(indev, dev->name))
                        return 0;
        }