[PATCH net-next v10 2/4] net: Introduce generic failover module

Stephen Hemminger
Mon, 07 May 2018 23:59:11 -0000

On Mon,  7 May 2018 15:10:44 -0700
Sridhar Samudrala <sridhar.samudrala at intel.com> wrote:

> +	if (netif_running(failover_dev)) {
> +		err = dev_open(slave_dev);
> +		if (err && (err != -EBUSY)) {
> +			netdev_err(failover_dev, "Opening slave %s failed err:%d\n",
> +				   slave_dev->name, err);
> +			goto err_dev_open;
> +		}
> +	}
> +
> +	netif_addr_lock_bh(failover_dev);
> +	dev_uc_sync_multiple(slave_dev, failover_dev);
> +	dev_uc_sync_multiple(slave_dev, failover_dev);
> +	netif_addr_unlock_bh(failover_dev);
> +

The order of these is backwards, you want to sync addresses before bringing up.
Also, doing it this way does not allow udev/systemd the chance to rename VF
devices.

The complexity of this whole failover mechanism does not make life easier,
more reliable, or safer for netvsc. I though that was the whole reason for
having
common code.