Lines Matching refs:slave_dev

74 	struct net_device *slave_dev;  in net_failover_close()  local
78 slave_dev = rtnl_dereference(nfo_info->primary_dev); in net_failover_close()
79 if (slave_dev) in net_failover_close()
80 dev_close(slave_dev); in net_failover_close()
82 slave_dev = rtnl_dereference(nfo_info->standby_dev); in net_failover_close()
83 if (slave_dev) in net_failover_close()
84 dev_close(slave_dev); in net_failover_close()
190 struct net_device *slave_dev; in net_failover_get_stats() local
197 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_get_stats()
198 if (slave_dev) { in net_failover_get_stats()
199 new = dev_get_stats(slave_dev, &temp); in net_failover_get_stats()
204 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_get_stats()
205 if (slave_dev) { in net_failover_get_stats()
206 new = dev_get_stats(slave_dev, &temp); in net_failover_get_stats()
248 struct net_device *slave_dev; in net_failover_set_rx_mode() local
252 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_set_rx_mode()
253 if (slave_dev) { in net_failover_set_rx_mode()
254 dev_uc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
255 dev_mc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
258 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_set_rx_mode()
259 if (slave_dev) { in net_failover_set_rx_mode()
260 dev_uc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
261 dev_mc_sync_multiple(slave_dev, dev); in net_failover_set_rx_mode()
296 struct net_device *slave_dev; in net_failover_vlan_rx_kill_vid() local
298 slave_dev = rcu_dereference(nfo_info->primary_dev); in net_failover_vlan_rx_kill_vid()
299 if (slave_dev) in net_failover_vlan_rx_kill_vid()
300 vlan_vid_del(slave_dev, proto, vid); in net_failover_vlan_rx_kill_vid()
302 slave_dev = rcu_dereference(nfo_info->standby_dev); in net_failover_vlan_rx_kill_vid()
303 if (slave_dev) in net_failover_vlan_rx_kill_vid()
304 vlan_vid_del(slave_dev, proto, vid); in net_failover_vlan_rx_kill_vid()
337 struct net_device *slave_dev; in nfo_ethtool_get_link_ksettings() local
339 slave_dev = rtnl_dereference(nfo_info->primary_dev); in nfo_ethtool_get_link_ksettings()
340 if (!slave_dev || !net_failover_xmit_ready(slave_dev)) { in nfo_ethtool_get_link_ksettings()
341 slave_dev = rtnl_dereference(nfo_info->standby_dev); in nfo_ethtool_get_link_ksettings()
342 if (!slave_dev || !net_failover_xmit_ready(slave_dev)) { in nfo_ethtool_get_link_ksettings()
351 return __ethtool_get_link_ksettings(slave_dev, cmd); in nfo_ethtool_get_link_ksettings()
437 static void net_failover_lower_state_changed(struct net_device *slave_dev, in net_failover_lower_state_changed() argument
443 if (netif_carrier_ok(slave_dev)) in net_failover_lower_state_changed()
448 if (slave_dev == primary_dev) { in net_failover_lower_state_changed()
461 netdev_lower_state_changed(slave_dev, &info); in net_failover_lower_state_changed()
464 static int net_failover_slave_pre_register(struct net_device *slave_dev, in net_failover_slave_pre_register() argument
474 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_pre_register()
477 slave_dev->name, in net_failover_slave_pre_register()
486 if (!slave_is_standby && (!slave_dev->dev.parent || in net_failover_slave_pre_register()
487 !dev_is_pci(slave_dev->dev.parent))) in net_failover_slave_pre_register()
500 static int net_failover_slave_register(struct net_device *slave_dev, in net_failover_slave_register() argument
510 orig_mtu = slave_dev->mtu; in net_failover_slave_register()
511 err = dev_set_mtu(slave_dev, failover_dev->mtu); in net_failover_slave_register()
514 slave_dev->name, failover_dev->mtu); in net_failover_slave_register()
518 dev_hold(slave_dev); in net_failover_slave_register()
521 err = dev_open(slave_dev); in net_failover_slave_register()
524 slave_dev->name, err); in net_failover_slave_register()
530 dev_uc_sync_multiple(slave_dev, failover_dev); in net_failover_slave_register()
531 dev_mc_sync_multiple(slave_dev, failover_dev); in net_failover_slave_register()
534 err = vlan_vids_add_by_dev(slave_dev, failover_dev); in net_failover_slave_register()
537 slave_dev->name, err); in net_failover_slave_register()
544 slave_is_standby = slave_dev->dev.parent == failover_dev->dev.parent; in net_failover_slave_register()
547 rcu_assign_pointer(nfo_info->standby_dev, slave_dev); in net_failover_slave_register()
548 standby_dev = slave_dev; in net_failover_slave_register()
551 rcu_assign_pointer(nfo_info->primary_dev, slave_dev); in net_failover_slave_register()
552 primary_dev = slave_dev; in net_failover_slave_register()
554 failover_dev->min_mtu = slave_dev->min_mtu; in net_failover_slave_register()
555 failover_dev->max_mtu = slave_dev->max_mtu; in net_failover_slave_register()
558 net_failover_lower_state_changed(slave_dev, primary_dev, standby_dev); in net_failover_slave_register()
561 call_netdevice_notifiers(NETDEV_JOIN, slave_dev); in net_failover_slave_register()
564 slave_is_standby ? "standby" : "primary", slave_dev->name); in net_failover_slave_register()
569 dev_uc_unsync(slave_dev, failover_dev); in net_failover_slave_register()
570 dev_mc_unsync(slave_dev, failover_dev); in net_failover_slave_register()
571 dev_close(slave_dev); in net_failover_slave_register()
573 dev_put(slave_dev); in net_failover_slave_register()
574 dev_set_mtu(slave_dev, orig_mtu); in net_failover_slave_register()
579 static int net_failover_slave_pre_unregister(struct net_device *slave_dev, in net_failover_slave_pre_unregister() argument
589 if (slave_dev != primary_dev && slave_dev != standby_dev) in net_failover_slave_pre_unregister()
595 static int net_failover_slave_unregister(struct net_device *slave_dev, in net_failover_slave_unregister() argument
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); in net_failover_slave_name_change()
794 struct net_device *slave_dev; in net_failover_destroy() local
806 slave_dev = rtnl_dereference(nfo_info->primary_dev); in net_failover_destroy()
807 if (slave_dev) in net_failover_destroy()
808 failover_slave_unregister(slave_dev); in net_failover_destroy()
810 slave_dev = rtnl_dereference(nfo_info->standby_dev); in net_failover_destroy()
811 if (slave_dev) in net_failover_destroy()
812 failover_slave_unregister(slave_dev); in net_failover_destroy()