Lines Matching refs:slave_dev

73 	struct net_device *slave_dev;  in net_failover_close()  local
77 slave_dev = rtnl_dereference(nfo_info->primary_dev); in net_failover_close()
78 if (slave_dev) in net_failover_close()
79 dev_close(slave_dev); in net_failover_close()
81 slave_dev = rtnl_dereference(nfo_info->standby_dev); in net_failover_close()
82 if (slave_dev) in net_failover_close()
83 dev_close(slave_dev); in net_failover_close()
187 struct net_device *slave_dev; in net_failover_get_stats() local
194 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_get_stats()
195 if (slave_dev) { in net_failover_get_stats()
196 new = dev_get_stats(slave_dev, &temp); in net_failover_get_stats()
201 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_get_stats()
202 if (slave_dev) { in net_failover_get_stats()
203 new = dev_get_stats(slave_dev, &temp); in net_failover_get_stats()
245 struct net_device *slave_dev; in net_failover_set_rx_mode() local
249 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_set_rx_mode()
250 if (slave_dev) { in net_failover_set_rx_mode()
251 dev_uc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
252 dev_mc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
255 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_set_rx_mode()
256 if (slave_dev) { in net_failover_set_rx_mode()
257 dev_uc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
258 dev_mc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
293 struct net_device *slave_dev; in net_failover_vlan_rx_kill_vid() local
295 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_vlan_rx_kill_vid()
296 if (slave_dev) in net_failover_vlan_rx_kill_vid()
297 vlan_vid_del(slave_dev, proto, vid); in net_failover_vlan_rx_kill_vid()
299 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_vlan_rx_kill_vid()
300 if (slave_dev) in net_failover_vlan_rx_kill_vid()
301 vlan_vid_del(slave_dev, proto, vid); in net_failover_vlan_rx_kill_vid()
334 struct net_device *slave_dev; in nfo_ethtool_get_link_ksettings() local
336 slave_dev = rtnl_dereference(nfo_info->primary_dev); in nfo_ethtool_get_link_ksettings()
337 if (!slave_dev || !net_failover_xmit_ready(slave_dev)) { in nfo_ethtool_get_link_ksettings()
338 slave_dev = rtnl_dereference(nfo_info->standby_dev); in nfo_ethtool_get_link_ksettings()
339 if (!slave_dev || !net_failover_xmit_ready(slave_dev)) { in nfo_ethtool_get_link_ksettings()
348 return __ethtool_get_link_ksettings(slave_dev, cmd); in nfo_ethtool_get_link_ksettings()
434 static void net_failover_lower_state_changed(struct net_device *slave_dev, in net_failover_lower_state_changed() argument
440 if (netif_carrier_ok(slave_dev)) in net_failover_lower_state_changed()
445 if (slave_dev == primary_dev) { in net_failover_lower_state_changed()
458 netdev_lower_state_changed(slave_dev, &info); in net_failover_lower_state_changed()
461 static int net_failover_slave_pre_register(struct net_device *slave_dev, in net_failover_slave_pre_register() argument
471 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_pre_register()
474 slave_dev->name, in net_failover_slave_pre_register()
483 if (!slave_is_standby && (!slave_dev->dev.parent || in net_failover_slave_pre_register()
484 !dev_is_pci(slave_dev->dev.parent))) in net_failover_slave_pre_register()
497 static int net_failover_slave_register(struct net_device *slave_dev, in net_failover_slave_register() argument
507 orig_mtu = slave_dev->mtu; in net_failover_slave_register()
508 err = dev_set_mtu(slave_dev, failover_dev->mtu); in net_failover_slave_register()
511 slave_dev->name, failover_dev->mtu); in net_failover_slave_register()
515 dev_hold(slave_dev); in net_failover_slave_register()
518 err = dev_open(slave_dev, NULL); in net_failover_slave_register()
521 slave_dev->name, err); 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()
531 err = vlan_vids_add_by_dev(slave_dev, failover_dev); in net_failover_slave_register()
534 slave_dev->name, err); in net_failover_slave_register()
541 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_register()
544 rcu_assign_pointer(nfo_info->standby_dev, slave_dev); in net_failover_slave_register()
545 standby_dev = slave_dev; in net_failover_slave_register()
548 rcu_assign_pointer(nfo_info->primary_dev, slave_dev); in net_failover_slave_register()
549 primary_dev = slave_dev; 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()
555 net_failover_lower_state_changed(slave_dev, primary_dev, standby_dev); in net_failover_slave_register()
558 call_netdevice_notifiers(NETDEV_JOIN, slave_dev); in net_failover_slave_register()
561 slave_is_standby ? "standby" : "primary", slave_dev->name); 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()
568 dev_close(slave_dev); in net_failover_slave_register()
570 dev_put(slave_dev); in net_failover_slave_register()
571 dev_set_mtu(slave_dev, orig_mtu); in net_failover_slave_register()
576 static int net_failover_slave_pre_unregister(struct net_device *slave_dev, in net_failover_slave_pre_unregister() argument
586 if (slave_dev != primary_dev && slave_dev != standby_dev) in net_failover_slave_pre_unregister()
592 static int net_failover_slave_unregister(struct net_device *slave_dev, in net_failover_slave_unregister() argument
603 if (WARN_ON_ONCE(slave_dev != primary_dev && slave_dev != standby_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()
609 dev_close(slave_dev); in net_failover_slave_unregister()
614 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_unregister()
625 dev_put(slave_dev); in net_failover_slave_unregister()
630 slave_is_standby ? "standby" : "primary", slave_dev->name); in net_failover_slave_unregister()
635 static int net_failover_slave_link_change(struct net_device *slave_dev, in net_failover_slave_link_change() argument
646 if (slave_dev != primary_dev && slave_dev != standby_dev) in net_failover_slave_link_change()
659 net_failover_lower_state_changed(slave_dev, primary_dev, standby_dev); in net_failover_slave_link_change()
664 static int net_failover_slave_name_change(struct net_device *slave_dev, in net_failover_slave_name_change() argument
675 if (slave_dev != primary_dev && slave_dev != standby_dev) in net_failover_slave_name_change()
681 dev_open(slave_dev, NULL); in net_failover_slave_name_change()
796 struct net_device *slave_dev; in net_failover_destroy() local
808 slave_dev = rtnl_dereference(nfo_info->primary_dev); in net_failover_destroy()
809 if (slave_dev) in net_failover_destroy()
810 failover_slave_unregister(slave_dev); in net_failover_destroy()
812 slave_dev = rtnl_dereference(nfo_info->standby_dev); in net_failover_destroy()
813 if (slave_dev) in net_failover_destroy()
814 failover_slave_unregister(slave_dev); in net_failover_destroy()