#include <asm/uaccess.h>
 #include <asm/system.h>
-#include <asm/string.h>
 
 #include <linux/inet.h>
 #include <linux/netdevice.h>
 #include <net/rtnetlink.h>
 #include <net/net_namespace.h>
 
-struct rtnl_link
-{
+struct rtnl_link {
        rtnl_doit_func          doit;
        rtnl_dumpit_func        dumpit;
 };
 {
        mutex_lock(&rtnl_mutex);
 }
+EXPORT_SYMBOL(rtnl_lock);
 
 void __rtnl_unlock(void)
 {
        /* This fellow will unlock it for us. */
        netdev_run_todo();
 }
+EXPORT_SYMBOL(rtnl_unlock);
 
 int rtnl_trylock(void)
 {
        return mutex_trylock(&rtnl_mutex);
 }
+EXPORT_SYMBOL(rtnl_trylock);
 
 int rtnl_is_locked(void)
 {
        return mutex_is_locked(&rtnl_mutex);
 }
+EXPORT_SYMBOL(rtnl_is_locked);
 
 static struct rtnl_link *rtnl_msg_handlers[NPROTO];
 
 
        return 0;
 }
-
 EXPORT_SYMBOL_GPL(__rtnl_register);
 
 /**
                      "protocol = %d, message type = %d\n",
                      protocol, msgtype);
 }
-
 EXPORT_SYMBOL_GPL(rtnl_register);
 
 /**
 
        return 0;
 }
-
 EXPORT_SYMBOL_GPL(rtnl_unregister);
 
 /**
        kfree(rtnl_msg_handlers[protocol]);
        rtnl_msg_handlers[protocol] = NULL;
 }
-
 EXPORT_SYMBOL_GPL(rtnl_unregister_all);
 
 static LIST_HEAD(link_ops);
        list_add_tail(&ops->list, &link_ops);
        return 0;
 }
-
 EXPORT_SYMBOL_GPL(__rtnl_link_register);
 
 /**
        rtnl_unlock();
        return err;
 }
-
 EXPORT_SYMBOL_GPL(rtnl_link_register);
 
 static void __rtnl_kill_links(struct net *net, struct rtnl_link_ops *ops)
        }
        list_del(&ops->list);
 }
-
 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
 
 /**
        __rtnl_link_unregister(ops);
        rtnl_unlock();
 }
-
 EXPORT_SYMBOL_GPL(rtnl_link_unregister);
 
 static const struct rtnl_link_ops *rtnl_link_ops_get(const char *kind)
        struct rtattr *rta;
        int size = RTA_LENGTH(attrlen);
 
-       rta = (struct rtattr*)skb_put(skb, RTA_ALIGN(size));
+       rta = (struct rtattr *)skb_put(skb, RTA_ALIGN(size));
        rta->rta_type = attrtype;
        rta->rta_len = size;
        memcpy(RTA_DATA(rta), data, attrlen);
        memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size);
 }
+EXPORT_SYMBOL(__rta_fill);
 
 int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned group, int echo)
 {
 
        return nlmsg_unicast(rtnl, skb, pid);
 }
+EXPORT_SYMBOL(rtnl_unicast);
 
 void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid, u32 group,
                 struct nlmsghdr *nlh, gfp_t flags)
 
        nlmsg_notify(rtnl, skb, pid, group, report, flags);
 }
+EXPORT_SYMBOL(rtnl_notify);
 
 void rtnl_set_sk_err(struct net *net, u32 group, int error)
 {
 
        netlink_set_err(rtnl, 0, group, error);
 }
+EXPORT_SYMBOL(rtnl_set_sk_err);
 
 int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics)
 {
        nla_nest_cancel(skb, mx);
        return -EMSGSIZE;
 }
+EXPORT_SYMBOL(rtnetlink_put_metrics);
 
 int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst, u32 id,
                       u32 ts, u32 tsage, long expires, u32 error)
 
        return nla_put(skb, RTA_CACHEINFO, sizeof(ci), &ci);
 }
-
 EXPORT_SYMBOL_GPL(rtnl_put_cacheinfo);
 
 static void set_operstate(struct net_device *dev, unsigned char transition)
 {
        unsigned char operstate = dev->operstate;
 
-       switch(transition) {
+       switch (transition) {
        case IF_OPER_UP:
                if ((operstate == IF_OPER_DORMANT ||
                     operstate == IF_OPER_UNKNOWN) &&
        [IFLA_NET_NS_PID]       = { .type = NLA_U32 },
        [IFLA_IFALIAS]          = { .type = NLA_STRING, .len = IFALIASZ-1 },
 };
+EXPORT_SYMBOL(ifla_policy);
 
 static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
        [IFLA_INFO_KIND]        = { .type = NLA_STRING },
                goto errout;
        }
 
-       if ((err = validate_linkmsg(dev, tb)) < 0)
+       err = validate_linkmsg(dev, tb);
+       if (err < 0)
                goto errout;
 
        err = do_setlink(dev, ifm, tb, ifname, 0);
        unsigned int real_num_queues = 1;
 
        if (ops->get_tx_queues) {
-               err = ops->get_tx_queues(net, tb, &num_queues, &real_num_queues);
+               err = ops->get_tx_queues(net, tb, &num_queues,
+                                        &real_num_queues);
                if (err)
                        goto err;
        }
 err:
        return ERR_PTR(err);
 }
+EXPORT_SYMBOL(rtnl_create_link);
 
 static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
 {
        else
                dev = NULL;
 
-       if ((err = validate_linkmsg(dev, tb)) < 0)
+       err = validate_linkmsg(dev, tb);
+       if (err < 0)
                return err;
 
        if (tb[IFLA_LINKINFO]) {
 
        if (s_idx == 0)
                s_idx = 1;
-       for (idx=1; idx<NPROTO; idx++) {
+       for (idx = 1; idx < NPROTO; idx++) {
                int type = cb->nlh->nlmsg_type-RTM_BASE;
                if (idx < s_idx || idx == PF_PACKET)
                        continue;
        if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(struct rtgenmsg)))
                return 0;
 
-       family = ((struct rtgenmsg*)NLMSG_DATA(nlh))->rtgen_family;
+       family = ((struct rtgenmsg *)NLMSG_DATA(nlh))->rtgen_family;
        if (family >= NPROTO)
                return -EAFNOSUPPORT;
 
 
        if (nlh->nlmsg_len > min_len) {
                int attrlen = nlh->nlmsg_len - NLMSG_ALIGN(min_len);
-               struct rtattr *attr = (void*)nlh + NLMSG_ALIGN(min_len);
+               struct rtattr *attr = (void *)nlh + NLMSG_ALIGN(min_len);
 
                while (RTA_OK(attr, attrlen)) {
                        unsigned flavor = attr->rta_type;
        rtnl_register(PF_UNSPEC, RTM_GETROUTE, NULL, rtnl_dump_all);
 }
 
-EXPORT_SYMBOL(__rta_fill);
-EXPORT_SYMBOL(rtnetlink_put_metrics);
-EXPORT_SYMBOL(rtnl_lock);
-EXPORT_SYMBOL(rtnl_trylock);
-EXPORT_SYMBOL(rtnl_unlock);
-EXPORT_SYMBOL(rtnl_is_locked);
-EXPORT_SYMBOL(rtnl_unicast);
-EXPORT_SYMBOL(rtnl_notify);
-EXPORT_SYMBOL(rtnl_set_sk_err);
-EXPORT_SYMBOL(rtnl_create_link);
-EXPORT_SYMBOL(ifla_policy);