#include <net/rtnetlink.h>
#include <net/net_namespace.h>
+#include <linux/xlog.h>
+
struct rtnl_link {
rtnl_doit_func doit;
rtnl_dumpit_func dumpit;
void rtnl_lock(void)
{
+ #ifdef CONFIG_MTK_NET_LOGGING
+ printk(KERN_DEBUG "[mtk_net][rtnl_lock]rtnl_lock++\n");
+ #endif
mutex_lock(&rtnl_mutex);
+ #ifdef CONFIG_MTK_NET_LOGGING
+ printk(KERN_DEBUG "[mtk_net][rtnl_lock]rtnl_lock--\n");
+ #endif
}
EXPORT_SYMBOL(rtnl_lock);
void __rtnl_unlock(void)
{
mutex_unlock(&rtnl_mutex);
+ #ifdef CONFIG_MTK_NET_LOGGING
+ printk(KERN_DEBUG "[mtk_net][rtnl_lock]rtnl_unlock done\n");
+ #endif
}
void rtnl_unlock(void)
struct sk_buff *skb;
int err = -ENOBUFS;
size_t if_info_size;
-
+ #ifdef CONFIG_MTK_NET_LOGGING
+ printk(KERN_INFO "[mtk_net][rtnetlink]rtmsg_ifinfo type:%d, dev:%s, change:%u, pid = %d",
+ type, dev->name, change, current->pid);
+ #endif
skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
if (skb == NULL)
goto errout;