Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
[firefly-linux-kernel-4.4.55.git] / net / bridge / br_if.c
index 537bdd60d9b951089e5ee843eec0681640173aa0..18b245e2c00edb642ef59c1aa2f5e03324a38790 100644 (file)
@@ -133,7 +133,7 @@ static void del_nbp(struct net_bridge_port *p)
        struct net_bridge *br = p->br;
        struct net_device *dev = p->dev;
 
-       sysfs_remove_link(br->ifobj, dev->name);
+       sysfs_remove_link(br->ifobj, p->dev->name);
 
        dev_set_promiscuity(dev, -1);
 
@@ -154,14 +154,7 @@ static void del_nbp(struct net_bridge_port *p)
        kobject_uevent(&p->kobj, KOBJ_REMOVE);
        kobject_del(&p->kobj);
 
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       if (br_devices_support_netpoll(br))
-               br->dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
-       if (dev->netdev_ops->ndo_netpoll_cleanup)
-               dev->netdev_ops->ndo_netpoll_cleanup(dev);
-       else
-               dev->npinfo = NULL;
-#endif
+       br_netpoll_disable(br, dev);
        call_rcu(&p->rcu, destroy_nbp_rcu);
 }
 
@@ -455,19 +448,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
 
        kobject_uevent(&p->kobj, KOBJ_ADD);
 
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       if (br_devices_support_netpoll(br)) {
-               br->dev->priv_flags &= ~IFF_DISABLE_NETPOLL;
-               if (br->dev->npinfo)
-                       dev->npinfo = br->dev->npinfo;
-       } else if (!(br->dev->priv_flags & IFF_DISABLE_NETPOLL)) {
-               br->dev->priv_flags |= IFF_DISABLE_NETPOLL;
-               printk(KERN_INFO "New device %s does not support netpoll\n",
-                       dev->name);
-               printk(KERN_INFO "Disabling netpoll for %s\n",
-                       br->dev->name);
-       }
-#endif
+       br_netpoll_enable(br, dev);
 
        return 0;
 err2: