diff -NurpP linux-2.6.31.5-vs2.3.0.36.21.5/net/core/dev.c linux-2.6.31.5-vs2.3.0.36.22/net/core/dev.c --- linux-2.6.31.5-vs2.3.0.36.21.5/net/core/dev.c 2009-11-05 03:49:56.000000000 +0100 +++ linux-2.6.31.5-vs2.3.0.36.22/net/core/dev.c 2009-11-05 05:30:29.000000000 +0100 @@ -687,10 +687,13 @@ struct net_device *dev_getbyhwaddr(struc ASSERT_RTNL(); - for_each_netdev(net, dev) + for_each_netdev(net, dev) { + if (!nx_dev_visible(current_nx_info(), dev)) + continue; if (dev->type == type && !memcmp(dev->dev_addr, ha, dev->addr_len)) return dev; + } return NULL; } @@ -702,9 +705,12 @@ struct net_device *__dev_getfirstbyhwtyp struct net_device *dev; ASSERT_RTNL(); - for_each_netdev(net, dev) + for_each_netdev(net, dev) { + if (!nx_dev_visible(current_nx_info(), dev)) + continue; if (dev->type == type) return dev; + } return NULL; } @@ -818,6 +824,8 @@ static int __dev_alloc_name(struct net * return -ENOMEM; for_each_netdev(net, d) { + if (!nx_dev_visible(current_nx_info(), d)) + continue; if (!sscanf(d->name, name, &i)) continue; if (i < 0 || i >= max_netdevices)