Lines Matching refs:failover_dev
462 struct net_device *failover_dev) in net_failover_slave_pre_register() argument
468 nfo_info = netdev_priv(failover_dev); in net_failover_slave_pre_register()
471 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_pre_register()
473 netdev_err(failover_dev, "%s attempting to register as slave dev when %s already present\n", in net_failover_slave_pre_register()
487 if (failover_dev->features & NETIF_F_VLAN_CHALLENGED && in net_failover_slave_pre_register()
488 vlan_uses_dev(failover_dev)) { in net_failover_slave_pre_register()
489 netdev_err(failover_dev, "Device %s is VLAN challenged and failover device has VLAN set up\n", in net_failover_slave_pre_register()
490 failover_dev->name); in net_failover_slave_pre_register()
498 struct net_device *failover_dev) in net_failover_slave_register() argument
508 err = dev_set_mtu(slave_dev, failover_dev->mtu); in net_failover_slave_register()
510 netdev_err(failover_dev, "unable to change mtu of %s to %u register failed\n", in net_failover_slave_register()
511 slave_dev->name, failover_dev->mtu); in net_failover_slave_register()
517 if (netif_running(failover_dev)) { in net_failover_slave_register()
520 netdev_err(failover_dev, "Opening slave %s failed err:%d\n", in net_failover_slave_register()
526 netif_addr_lock_bh(failover_dev); in net_failover_slave_register()
527 dev_uc_sync_multiple(slave_dev, failover_dev); in net_failover_slave_register()
528 dev_mc_sync_multiple(slave_dev, failover_dev); in net_failover_slave_register()
529 netif_addr_unlock_bh(failover_dev); in net_failover_slave_register()
531 err = vlan_vids_add_by_dev(slave_dev, failover_dev); in net_failover_slave_register()
533 netdev_err(failover_dev, "Failed to add vlan ids to device %s err:%d\n", in net_failover_slave_register()
538 nfo_info = netdev_priv(failover_dev); in net_failover_slave_register()
541 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_register()
551 failover_dev->min_mtu = slave_dev->min_mtu; in net_failover_slave_register()
552 failover_dev->max_mtu = slave_dev->max_mtu; in net_failover_slave_register()
556 net_failover_compute_features(failover_dev); in net_failover_slave_register()
560 netdev_info(failover_dev, "failover %s slave:%s registered\n", in net_failover_slave_register()
566 dev_uc_unsync(slave_dev, failover_dev); in net_failover_slave_register()
567 dev_mc_unsync(slave_dev, failover_dev); in net_failover_slave_register()
577 struct net_device *failover_dev) in net_failover_slave_pre_unregister() argument
582 nfo_info = netdev_priv(failover_dev); in net_failover_slave_pre_unregister()
593 struct net_device *failover_dev) in net_failover_slave_unregister() argument
599 nfo_info = netdev_priv(failover_dev); in net_failover_slave_unregister()
606 vlan_vids_del_by_dev(slave_dev, failover_dev); in net_failover_slave_unregister()
607 dev_uc_unsync(slave_dev, failover_dev); in net_failover_slave_unregister()
608 dev_mc_unsync(slave_dev, failover_dev); in net_failover_slave_unregister()
611 nfo_info = netdev_priv(failover_dev); in net_failover_slave_unregister()
612 dev_get_stats(failover_dev, &nfo_info->failover_stats); in net_failover_slave_unregister()
614 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_unregister()
620 failover_dev->min_mtu = standby_dev->min_mtu; in net_failover_slave_unregister()
621 failover_dev->max_mtu = standby_dev->max_mtu; in net_failover_slave_unregister()
627 net_failover_compute_features(failover_dev); in net_failover_slave_unregister()
629 netdev_info(failover_dev, "failover %s slave:%s unregistered\n", in net_failover_slave_unregister()
636 struct net_device *failover_dev) in net_failover_slave_link_change() argument
641 nfo_info = netdev_priv(failover_dev); in net_failover_slave_link_change()
651 netif_carrier_on(failover_dev); in net_failover_slave_link_change()
652 netif_tx_wake_all_queues(failover_dev); in net_failover_slave_link_change()
654 dev_get_stats(failover_dev, &nfo_info->failover_stats); in net_failover_slave_link_change()
655 netif_carrier_off(failover_dev); in net_failover_slave_link_change()
656 netif_tx_stop_all_queues(failover_dev); in net_failover_slave_link_change()
665 struct net_device *failover_dev) in net_failover_slave_name_change() argument
670 nfo_info = netdev_priv(failover_dev); in net_failover_slave_name_change()
712 struct net_device *failover_dev; in net_failover_create() local
719 failover_dev = alloc_etherdev_mq(sizeof(struct net_failover_info), 16); in net_failover_create()
720 if (!failover_dev) { in net_failover_create()
725 dev_net_set(failover_dev, dev_net(standby_dev)); in net_failover_create()
726 SET_NETDEV_DEV(failover_dev, dev); in net_failover_create()
728 failover_dev->netdev_ops = &failover_dev_ops; in net_failover_create()
729 failover_dev->ethtool_ops = &failover_ethtool_ops; in net_failover_create()
732 failover_dev->priv_flags |= IFF_UNICAST_FLT | IFF_NO_QUEUE; in net_failover_create()
733 failover_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | in net_failover_create()
737 failover_dev->features |= NETIF_F_LLTX; in net_failover_create()
740 failover_dev->features |= NETIF_F_NETNS_LOCAL; in net_failover_create()
742 failover_dev->hw_features = FAILOVER_VLAN_FEATURES | in net_failover_create()
747 failover_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL; in net_failover_create()
748 failover_dev->features |= failover_dev->hw_features; in net_failover_create()
750 memcpy(failover_dev->dev_addr, standby_dev->dev_addr, in net_failover_create()
751 failover_dev->addr_len); in net_failover_create()
753 failover_dev->min_mtu = standby_dev->min_mtu; in net_failover_create()
754 failover_dev->max_mtu = standby_dev->max_mtu; in net_failover_create()
756 err = register_netdev(failover_dev); in net_failover_create()
762 netif_carrier_off(failover_dev); in net_failover_create()
764 failover = failover_register(failover_dev, &net_failover_ops); in net_failover_create()
773 unregister_netdev(failover_dev); in net_failover_create()
775 free_netdev(failover_dev); in net_failover_create()
795 struct net_device *failover_dev; in net_failover_destroy() local
801 failover_dev = rcu_dereference(failover->failover_dev); in net_failover_destroy()
802 nfo_info = netdev_priv(failover_dev); in net_failover_destroy()
804 netif_device_detach(failover_dev); in net_failover_destroy()
818 unregister_netdevice(failover_dev); in net_failover_destroy()
822 free_netdev(failover_dev); in net_failover_destroy()