]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/net/net_failover.c
Merge tag 'jfs-for-4.20' of git://github.com/kleikamp/linux-shaggy
[linux.git] / drivers / net / net_failover.c
index 7ae1856d1f185207222fdc22907a8056b68ca057..e964d312f4ca32acda1e13adbca0fb42b0cf465b 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <linux/netdevice.h>
 #include <linux/netpoll.h>
 #include <linux/rtnetlink.h>
 #include <linux/if_vlan.h>
@@ -603,6 +602,9 @@ static int net_failover_slave_unregister(struct net_device *slave_dev,
        primary_dev = rtnl_dereference(nfo_info->primary_dev);
        standby_dev = rtnl_dereference(nfo_info->standby_dev);
 
+       if (WARN_ON_ONCE(slave_dev != primary_dev && slave_dev != standby_dev))
+               return -ENODEV;
+
        vlan_vids_del_by_dev(slave_dev, failover_dev);
        dev_uc_unsync(slave_dev, failover_dev);
        dev_mc_unsync(slave_dev, failover_dev);
@@ -762,8 +764,10 @@ struct failover *net_failover_create(struct net_device *standby_dev)
        netif_carrier_off(failover_dev);
 
        failover = failover_register(failover_dev, &net_failover_ops);
-       if (IS_ERR(failover))
+       if (IS_ERR(failover)) {
+               err = PTR_ERR(failover);
                goto err_failover_register;
+       }
 
        return failover;