]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/ipv4/fib_semantics.c
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / net / ipv4 / fib_semantics.c
index 1e2090ea663e209b739e01186b3939802630d63f..8d695b6659c715f89e06c31d9890532b34b2727f 100644 (file)
@@ -213,7 +213,6 @@ static void free_fib_info_rcu(struct rcu_head *head)
                rt_fibinfo_free(&nexthop_nh->nh_rth_input);
        } endfor_nexthops(fi);
 
-       release_net(fi->fib_net);
        if (fi->fib_metrics != (u32 *) dst_default_metrics)
                kfree(fi->fib_metrics);
        kfree(fi);
@@ -391,7 +390,7 @@ void rtmsg_fib(int event, __be32 key, struct fib_alias *fa,
        int err = -ENOBUFS;
 
        skb = nlmsg_new(fib_nlmsg_size(fa->fa_info), GFP_KERNEL);
-       if (skb == NULL)
+       if (!skb)
                goto errout;
 
        err = fib_dump_info(skb, info->portid, seq, event, tb_id,
@@ -469,7 +468,7 @@ static int fib_get_nhs(struct fib_info *fi, struct rtnexthop *rtnh,
                        struct nlattr *nla, *attrs = rtnh_attrs(rtnh);
 
                        nla = nla_find(attrs, attrlen, RTA_GATEWAY);
-                       nexthop_nh->nh_gw = nla ? nla_get_be32(nla) : 0;
+                       nexthop_nh->nh_gw = nla ? nla_get_in_addr(nla) : 0;
 #ifdef CONFIG_IP_ROUTE_CLASSID
                        nla = nla_find(attrs, attrlen, RTA_FLOW);
                        nexthop_nh->nh_tclassid = nla ? nla_get_u32(nla) : 0;
@@ -504,7 +503,7 @@ int fib_nh_match(struct fib_config *cfg, struct fib_info *fi)
        }
 
 #ifdef CONFIG_IP_ROUTE_MULTIPATH
-       if (cfg->fc_mp == NULL)
+       if (!cfg->fc_mp)
                return 0;
 
        rtnh = cfg->fc_mp;
@@ -524,7 +523,7 @@ int fib_nh_match(struct fib_config *cfg, struct fib_info *fi)
                        struct nlattr *nla, *attrs = rtnh_attrs(rtnh);
 
                        nla = nla_find(attrs, attrlen, RTA_GATEWAY);
-                       if (nla && nla_get_be32(nla) != nh->nh_gw)
+                       if (nla && nla_get_in_addr(nla) != nh->nh_gw)
                                return 1;
 #ifdef CONFIG_IP_ROUTE_CLASSID
                        nla = nla_find(attrs, attrlen, RTA_FLOW);
@@ -647,7 +646,7 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_info *fi,
                rcu_read_lock();
                err = -ENODEV;
                in_dev = inetdev_by_index(net, nh->nh_oif);
-               if (in_dev == NULL)
+               if (!in_dev)
                        goto out;
                err = -ENETDOWN;
                if (!(in_dev->dev->flags & IFF_UP))
@@ -804,7 +803,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
        }
 
        fi = kzalloc(sizeof(*fi)+nhs*sizeof(struct fib_nh), GFP_KERNEL);
-       if (fi == NULL)
+       if (!fi)
                goto failure;
        fib_info_cnt++;
        if (cfg->fc_mx) {
@@ -814,7 +813,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
        } else
                fi->fib_metrics = (u32 *) dst_default_metrics;
 
-       fi->fib_net = hold_net(net);
+       fi->fib_net = net;
        fi->fib_protocol = cfg->fc_protocol;
        fi->fib_scope = cfg->fc_scope;
        fi->fib_flags = cfg->fc_flags;
@@ -922,7 +921,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
                nh->nh_scope = RT_SCOPE_NOWHERE;
                nh->nh_dev = dev_get_by_index(net, fi->fib_nh->nh_oif);
                err = -ENODEV;
-               if (nh->nh_dev == NULL)
+               if (!nh->nh_dev)
                        goto failure;
        } else {
                change_nexthops(fi) {
@@ -996,7 +995,7 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
        struct rtmsg *rtm;
 
        nlh = nlmsg_put(skb, portid, seq, event, sizeof(*rtm), flags);
-       if (nlh == NULL)
+       if (!nlh)
                return -EMSGSIZE;
 
        rtm = nlmsg_data(nlh);
@@ -1016,7 +1015,7 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
        rtm->rtm_protocol = fi->fib_protocol;
 
        if (rtm->rtm_dst_len &&
-           nla_put_be32(skb, RTA_DST, dst))
+           nla_put_in_addr(skb, RTA_DST, dst))
                goto nla_put_failure;
        if (fi->fib_priority &&
            nla_put_u32(skb, RTA_PRIORITY, fi->fib_priority))
@@ -1025,11 +1024,11 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
                goto nla_put_failure;
 
        if (fi->fib_prefsrc &&
-           nla_put_be32(skb, RTA_PREFSRC, fi->fib_prefsrc))
+           nla_put_in_addr(skb, RTA_PREFSRC, fi->fib_prefsrc))
                goto nla_put_failure;
        if (fi->fib_nhs == 1) {
                if (fi->fib_nh->nh_gw &&
-                   nla_put_be32(skb, RTA_GATEWAY, fi->fib_nh->nh_gw))
+                   nla_put_in_addr(skb, RTA_GATEWAY, fi->fib_nh->nh_gw))
                        goto nla_put_failure;
                if (fi->fib_nh->nh_oif &&
                    nla_put_u32(skb, RTA_OIF, fi->fib_nh->nh_oif))
@@ -1046,12 +1045,12 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
                struct nlattr *mp;
 
                mp = nla_nest_start(skb, RTA_MULTIPATH);
-               if (mp == NULL)
+               if (!mp)
                        goto nla_put_failure;
 
                for_nexthops(fi) {
                        rtnh = nla_reserve_nohdr(skb, sizeof(*rtnh));
-                       if (rtnh == NULL)
+                       if (!rtnh)
                                goto nla_put_failure;
 
                        rtnh->rtnh_flags = nh->nh_flags & 0xFF;
@@ -1059,7 +1058,7 @@ int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int event,
                        rtnh->rtnh_ifindex = nh->nh_oif;
 
                        if (nh->nh_gw &&
-                           nla_put_be32(skb, RTA_GATEWAY, nh->nh_gw))
+                           nla_put_in_addr(skb, RTA_GATEWAY, nh->nh_gw))
                                goto nla_put_failure;
 #ifdef CONFIG_IP_ROUTE_CLASSID
                        if (nh->nh_tclassid &&
@@ -1094,7 +1093,7 @@ int fib_sync_down_addr(struct net *net, __be32 local)
        struct hlist_head *head = &fib_info_laddrhash[hash];
        struct fib_info *fi;
 
-       if (fib_info_laddrhash == NULL || local == 0)
+       if (!fib_info_laddrhash || local == 0)
                return 0;
 
        hlist_for_each_entry(fi, head, fib_lhash) {
@@ -1163,12 +1162,12 @@ int fib_sync_down_dev(struct net_device *dev, int force)
 void fib_select_default(struct fib_result *res)
 {
        struct fib_info *fi = NULL, *last_resort = NULL;
-       struct list_head *fa_head = res->fa_head;
+       struct hlist_head *fa_head = res->fa_head;
        struct fib_table *tb = res->table;
        int order = -1, last_idx = -1;
        struct fib_alias *fa;
 
-       list_for_each_entry_rcu(fa, fa_head, fa_list) {
+       hlist_for_each_entry_rcu(fa, fa_head, fa_list) {
                struct fib_info *next_fi = fa->fa_info;
 
                if (next_fi->fib_scope != res->scope ||
@@ -1183,7 +1182,7 @@ void fib_select_default(struct fib_result *res)
 
                fib_alias_accessed(fa);
 
-               if (fi == NULL) {
+               if (!fi) {
                        if (next_fi != res->fi)
                                break;
                } else if (!fib_detect_death(fi, order, &last_resort,
@@ -1196,7 +1195,7 @@ void fib_select_default(struct fib_result *res)
                order++;
        }
 
-       if (order <= 0 || fi == NULL) {
+       if (order <= 0 || !fi) {
                tb->tb_default = -1;
                goto out;
        }
@@ -1252,7 +1251,7 @@ int fib_sync_up(struct net_device *dev)
                                alive++;
                                continue;
                        }
-                       if (nexthop_nh->nh_dev == NULL ||
+                       if (!nexthop_nh->nh_dev ||
                            !(nexthop_nh->nh_dev->flags & IFF_UP))
                                continue;
                        if (nexthop_nh->nh_dev != dev ||