Lines Matching refs:slave_dev
250 struct net_device *slave_dev) in bond_dev_queue_xmit() argument
252 skb->dev = slave_dev; in bond_dev_queue_xmit()
259 bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb); in bond_dev_queue_xmit()
378 struct net_device *slave_dev = slave->dev; in bond_update_speed_duplex() local
386 res = __ethtool_get_settings(slave_dev, &ecmd); in bond_update_speed_duplex()
440 struct net_device *slave_dev, int reporting) in bond_check_dev_link() argument
442 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; in bond_check_dev_link()
447 if (!reporting && !netif_running(slave_dev)) in bond_check_dev_link()
451 return netif_carrier_ok(slave_dev) ? BMSR_LSTATUS : 0; in bond_check_dev_link()
454 if (slave_dev->ethtool_ops->get_link) in bond_check_dev_link()
455 return slave_dev->ethtool_ops->get_link(slave_dev) ? in bond_check_dev_link()
474 strncpy(ifr.ifr_name, slave_dev->name, IFNAMSIZ); in bond_check_dev_link()
476 if (IOCTL(slave_dev, &ifr, SIOCGMIIPHY) == 0) { in bond_check_dev_link()
478 if (IOCTL(slave_dev, &ifr, SIOCGMIIREG) == 0) in bond_check_dev_link()
563 struct net_device *slave_dev) in bond_hw_addr_flush() argument
567 dev_uc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
568 dev_mc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
574 dev_mc_del(slave_dev, lacpdu_multicast); in bond_hw_addr_flush()
621 struct net_device *slave_dev) in bond_set_dev_addr() argument
624 bond_dev, slave_dev, slave_dev->addr_len); in bond_set_dev_addr()
625 memcpy(bond_dev->dev_addr, slave_dev->dev_addr, slave_dev->addr_len); in bond_set_dev_addr()
1113 struct net_device *slave_dev) in bond_setup_by_slave() argument
1115 bond_dev->header_ops = slave_dev->header_ops; in bond_setup_by_slave()
1117 bond_dev->type = slave_dev->type; in bond_setup_by_slave()
1118 bond_dev->hard_header_len = slave_dev->hard_header_len; in bond_setup_by_slave()
1119 bond_dev->addr_len = slave_dev->addr_len; in bond_setup_by_slave()
1121 memcpy(bond_dev->broadcast, slave_dev->broadcast, in bond_setup_by_slave()
1122 slave_dev->addr_len); in bond_setup_by_slave()
1191 struct net_device *slave_dev, in bond_master_upper_dev_link() argument
1196 err = netdev_master_upper_dev_link_private(slave_dev, bond_dev, slave); in bond_master_upper_dev_link()
1199 rtmsg_ifinfo(RTM_NEWLINK, slave_dev, IFF_SLAVE, GFP_KERNEL); in bond_master_upper_dev_link()
1204 struct net_device *slave_dev) in bond_upper_dev_unlink() argument
1206 netdev_upper_dev_unlink(slave_dev, bond_dev); in bond_upper_dev_unlink()
1207 slave_dev->flags &= ~IFF_SLAVE; in bond_upper_dev_unlink()
1208 rtmsg_ifinfo(RTM_NEWLINK, slave_dev, IFF_SLAVE, GFP_KERNEL); in bond_upper_dev_unlink()
1291 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) in bond_enslave() argument
1294 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; in bond_enslave()
1301 slave_dev->ethtool_ops->get_link == NULL && in bond_enslave()
1304 slave_dev->name); in bond_enslave()
1308 if (slave_dev->flags & IFF_SLAVE) { in bond_enslave()
1313 if (bond_dev == slave_dev) { in bond_enslave()
1320 if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) { in bond_enslave()
1322 slave_dev->name); in bond_enslave()
1325 slave_dev->name, bond_dev->name); in bond_enslave()
1329 slave_dev->name, slave_dev->name, in bond_enslave()
1334 slave_dev->name); in bond_enslave()
1342 if ((slave_dev->flags & IFF_UP)) { in bond_enslave()
1344 slave_dev->name); in bond_enslave()
1357 if (bond_dev->type != slave_dev->type) { in bond_enslave()
1359 bond_dev->type, slave_dev->type); in bond_enslave()
1374 if (slave_dev->type != ARPHRD_ETHER) in bond_enslave()
1375 bond_setup_by_slave(bond_dev, slave_dev); in bond_enslave()
1384 } else if (bond_dev->type != slave_dev->type) { in bond_enslave()
1386 slave_dev->name, slave_dev->type, bond_dev->type); in bond_enslave()
1406 call_netdevice_notifiers(NETDEV_JOIN, slave_dev); in bond_enslave()
1413 bond_set_dev_addr(bond->dev, slave_dev); in bond_enslave()
1422 new_slave->dev = slave_dev; in bond_enslave()
1429 new_slave->original_mtu = slave_dev->mtu; in bond_enslave()
1430 res = dev_set_mtu(slave_dev, bond->dev->mtu); in bond_enslave()
1440 ether_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr); in bond_enslave()
1448 addr.sa_family = slave_dev->type; in bond_enslave()
1449 res = dev_set_mac_address(slave_dev, &addr); in bond_enslave()
1457 slave_dev->flags |= IFF_SLAVE; in bond_enslave()
1460 res = dev_open(slave_dev); in bond_enslave()
1462 netdev_dbg(bond_dev, "Opening slave %s failed\n", slave_dev->name); in bond_enslave()
1466 slave_dev->priv_flags |= IFF_BONDING; in bond_enslave()
1485 res = dev_set_promiscuity(slave_dev, 1); in bond_enslave()
1492 res = dev_set_allmulti(slave_dev, 1); in bond_enslave()
1499 dev_mc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
1500 dev_uc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
1509 dev_mc_add(slave_dev, lacpdu_multicast); in bond_enslave()
1512 res = vlan_vids_add_by_dev(slave_dev, bond_dev); in bond_enslave()
1515 slave_dev->name); in bond_enslave()
1532 link_reporting = bond_check_dev_link(bond, slave_dev, 1); in bond_enslave()
1544 slave_dev->name); in bond_enslave()
1548 slave_dev->name); in bond_enslave()
1554 if (bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS) { in bond_enslave()
1568 (netif_carrier_ok(slave_dev) ? in bond_enslave()
1636 slave_dev->npinfo = bond->dev->npinfo; in bond_enslave()
1637 if (slave_dev->npinfo) { in bond_enslave()
1647 dev_disable_lro(slave_dev); in bond_enslave()
1649 res = netdev_rx_handler_register(slave_dev, bond_handle_frame, in bond_enslave()
1656 res = bond_master_upper_dev_link(bond_dev, slave_dev, new_slave); in bond_enslave()
1682 slave_dev->name, in bond_enslave()
1692 bond_upper_dev_unlink(bond_dev, slave_dev); in bond_enslave()
1695 netdev_rx_handler_unregister(slave_dev); in bond_enslave()
1699 bond_hw_addr_flush(bond_dev, slave_dev); in bond_enslave()
1701 vlan_vids_del_by_dev(slave_dev, bond_dev); in bond_enslave()
1715 slave_dev->priv_flags &= ~IFF_BONDING; in bond_enslave()
1716 dev_close(slave_dev); in bond_enslave()
1719 slave_dev->flags &= ~IFF_SLAVE; in bond_enslave()
1727 addr.sa_family = slave_dev->type; in bond_enslave()
1728 dev_set_mac_address(slave_dev, &addr); in bond_enslave()
1732 dev_set_mtu(slave_dev, new_slave->original_mtu); in bond_enslave()
1740 ether_addr_equal_64bits(bond_dev->dev_addr, slave_dev->dev_addr)) in bond_enslave()
1758 struct net_device *slave_dev, in __bond_release_one() argument
1768 if (!(slave_dev->flags & IFF_SLAVE) || in __bond_release_one()
1769 !netdev_has_upper_dev(slave_dev, bond_dev)) { in __bond_release_one()
1771 slave_dev->name); in __bond_release_one()
1777 slave = bond_get_slave_by_dev(bond, slave_dev); in __bond_release_one()
1781 slave_dev->name); in __bond_release_one()
1791 bond_upper_dev_unlink(bond_dev, slave_dev); in __bond_release_one()
1795 netdev_rx_handler_unregister(slave_dev); in __bond_release_one()
1805 slave_dev->name); in __bond_release_one()
1816 slave_dev->name, slave->perm_hwaddr, in __bond_release_one()
1817 bond_dev->name, slave_dev->name); in __bond_release_one()
1863 slave_dev->name, bond_dev->name); in __bond_release_one()
1865 vlan_vids_del_by_dev(slave_dev, bond_dev); in __bond_release_one()
1879 dev_set_promiscuity(slave_dev, -1); in __bond_release_one()
1883 dev_set_allmulti(slave_dev, -1); in __bond_release_one()
1885 bond_hw_addr_flush(bond_dev, slave_dev); in __bond_release_one()
1891 dev_close(slave_dev); in __bond_release_one()
1897 addr.sa_family = slave_dev->type; in __bond_release_one()
1898 dev_set_mac_address(slave_dev, &addr); in __bond_release_one()
1901 dev_set_mtu(slave_dev, slave->original_mtu); in __bond_release_one()
1903 slave_dev->priv_flags &= ~IFF_BONDING; in __bond_release_one()
1911 int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) in bond_release() argument
1913 return __bond_release_one(bond_dev, slave_dev, false); in bond_release()
1920 struct net_device *slave_dev) in bond_release_and_destroy() argument
1925 ret = bond_release(bond_dev, slave_dev); in bond_release_and_destroy()
2231 static void bond_arp_send(struct net_device *slave_dev, int arp_op, in bond_arp_send() argument
2238 netdev_dbg(slave_dev, "arp %d on slave %s: dst %pI4 src %pI4\n", in bond_arp_send()
2239 arp_op, slave_dev->name, &dest_ip, &src_ip); in bond_arp_send()
2241 skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip, in bond_arp_send()
2242 NULL, slave_dev->dev_addr, NULL); in bond_arp_send()
2261 netdev_dbg(slave_dev, "inner tag: proto %X vid %X\n", in bond_arp_send()
2274 netdev_dbg(slave_dev, "outer tag: proto %X vid %X\n", in bond_arp_send()
2941 struct net_device *slave_dev) in bond_slave_netdev_event() argument
2943 struct slave *slave = bond_slave_get_rtnl(slave_dev), *primary; in bond_slave_netdev_event()
2962 bond_release_and_destroy(bond_dev, slave_dev); in bond_slave_netdev_event()
2964 bond_release(bond_dev, slave_dev); in bond_slave_netdev_event()
3014 } else if (!strcmp(slave_dev->name, bond->params.primary)) { in bond_slave_netdev_event()
3022 primary ? slave_dev->name : "none"); in bond_slave_netdev_event()
3301 struct net_device *slave_dev = NULL; in bond_do_ioctl() local
3371 slave_dev = __dev_get_by_name(net, ifr->ifr_slave); in bond_do_ioctl()
3373 netdev_dbg(bond_dev, "slave_dev=%p:\n", slave_dev); in bond_do_ioctl()
3375 if (!slave_dev) in bond_do_ioctl()
3378 netdev_dbg(bond_dev, "slave_dev->name=%s:\n", slave_dev->name); in bond_do_ioctl()
3382 res = bond_enslave(bond_dev, slave_dev); in bond_do_ioctl()
3386 res = bond_release(bond_dev, slave_dev); in bond_do_ioctl()
3390 bond_set_dev_addr(bond_dev, slave_dev); in bond_do_ioctl()
3395 bond_opt_initstr(&newval, slave_dev->name); in bond_do_ioctl()