Merge to Fedora kernel-2.6.7-1.492
[linux-2.6.git] / net / core / rtnetlink.c
index 26e3577..95c9718 100644 (file)
@@ -93,7 +93,8 @@ static const int rtm_min[(RTM_MAX+1-RTM_BASE)/4] =
        NLMSG_LENGTH(sizeof(struct rtmsg)),
        NLMSG_LENGTH(sizeof(struct tcmsg)),
        NLMSG_LENGTH(sizeof(struct tcmsg)),
-       NLMSG_LENGTH(sizeof(struct tcmsg))
+       NLMSG_LENGTH(sizeof(struct tcmsg)),
+       NLMSG_LENGTH(sizeof(struct tcamsg))
 };
 
 static const int rta_max[(RTM_MAX+1-RTM_BASE)/4] =
@@ -105,7 +106,8 @@ static const int rta_max[(RTM_MAX+1-RTM_BASE)/4] =
        RTA_MAX,
        TCA_MAX,
        TCA_MAX,
-       TCA_MAX
+       TCA_MAX,
+       TCAA_MAX
 };
 
 void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const void *data)
@@ -224,6 +226,8 @@ int rtnetlink_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
        for (dev=dev_base, idx=0; dev; dev = dev->next, idx++) {
                if (idx < s_idx)
                        continue;
+               if (!dev_in_nx_info(dev, current->nx_info))
+                       continue;
                if (rtnetlink_fill_ifinfo(skb, dev, RTM_NEWLINK, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, 0) <= 0)
                        break;
        }
@@ -309,6 +313,8 @@ void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change)
        struct sk_buff *skb;
        int size = NLMSG_GOODSIZE;
 
+       if (!dev_in_nx_info(dev, current->nx_info))
+               return;
        skb = alloc_skb(size, GFP_KERNEL);
        if (!skb)
                return;