#include <linux/slab.h>
 #include <linux/export.h>
 #include <linux/if_vlan.h>
-#include <net/dsa.h>
 #include <net/tcp.h>
 #include <net/udp.h>
 #include <net/addrconf.h>
 
 int netpoll_setup(struct netpoll *np)
 {
-       struct net_device *ndev = NULL, *dev = NULL;
-       struct net *net = current->nsproxy->net_ns;
+       struct net_device *ndev = NULL;
        struct in_device *in_dev;
        int err;
 
        rtnl_lock();
-       if (np->dev_name[0])
+       if (np->dev_name[0]) {
+               struct net *net = current->nsproxy->net_ns;
                ndev = __dev_get_by_name(net, np->dev_name);
-
+       }
        if (!ndev) {
                np_err(np, "%s doesn't exist, aborting\n", np->dev_name);
                err = -ENODEV;
        }
        dev_hold(ndev);
 
-       /* bring up DSA management network devices up first */
-       for_each_netdev(net, dev) {
-               if (!netdev_uses_dsa(dev))
-                       continue;
-
-               err = dev_change_flags(dev, dev->flags | IFF_UP, NULL);
-               if (err < 0) {
-                       np_err(np, "%s failed to open %s\n",
-                              np->dev_name, dev->name);
-                       goto put;
-               }
-       }
-
        if (netdev_master_upper_dev_get(ndev)) {
                np_err(np, "%s is a slave device, aborting\n", np->dev_name);
                err = -EBUSY;