Lines Matching refs:dev
25 static bool dsa_slave_dev_check(const struct net_device *dev);
56 ds->slave_mii_bus->parent = ds->dev; in dsa_slave_mii_bus_init()
62 static int dsa_slave_get_iflink(const struct net_device *dev) in dsa_slave_get_iflink() argument
64 return dsa_slave_to_master(dev)->ifindex; in dsa_slave_get_iflink()
67 static int dsa_slave_open(struct net_device *dev) in dsa_slave_open() argument
69 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_open()
70 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_open()
76 if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) { in dsa_slave_open()
77 err = dev_uc_add(master, dev->dev_addr); in dsa_slave_open()
82 if (dev->flags & IFF_ALLMULTI) { in dsa_slave_open()
87 if (dev->flags & IFF_PROMISC) { in dsa_slave_open()
93 err = dsa_port_enable_rt(dp, dev->phydev); in dsa_slave_open()
100 if (dev->flags & IFF_PROMISC) in dsa_slave_open()
103 if (dev->flags & IFF_ALLMULTI) in dsa_slave_open()
106 if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) in dsa_slave_open()
107 dev_uc_del(master, dev->dev_addr); in dsa_slave_open()
112 static int dsa_slave_close(struct net_device *dev) in dsa_slave_close() argument
114 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_close()
115 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_close()
122 dev_mc_unsync(master, dev); in dsa_slave_close()
123 dev_uc_unsync(master, dev); in dsa_slave_close()
124 if (dev->flags & IFF_ALLMULTI) in dsa_slave_close()
126 if (dev->flags & IFF_PROMISC) in dsa_slave_close()
129 if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) in dsa_slave_close()
130 dev_uc_del(master, dev->dev_addr); in dsa_slave_close()
135 static void dsa_slave_change_rx_flags(struct net_device *dev, int change) in dsa_slave_change_rx_flags() argument
137 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_change_rx_flags()
138 if (dev->flags & IFF_UP) { in dsa_slave_change_rx_flags()
141 dev->flags & IFF_ALLMULTI ? 1 : -1); in dsa_slave_change_rx_flags()
144 dev->flags & IFF_PROMISC ? 1 : -1); in dsa_slave_change_rx_flags()
148 static void dsa_slave_set_rx_mode(struct net_device *dev) in dsa_slave_set_rx_mode() argument
150 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_set_rx_mode()
152 dev_mc_sync(master, dev); in dsa_slave_set_rx_mode()
153 dev_uc_sync(master, dev); in dsa_slave_set_rx_mode()
156 static int dsa_slave_set_mac_address(struct net_device *dev, void *a) in dsa_slave_set_mac_address() argument
158 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_set_mac_address()
165 if (!(dev->flags & IFF_UP)) in dsa_slave_set_mac_address()
174 if (!ether_addr_equal(dev->dev_addr, master->dev_addr)) in dsa_slave_set_mac_address()
175 dev_uc_del(master, dev->dev_addr); in dsa_slave_set_mac_address()
178 ether_addr_copy(dev->dev_addr, addr->sa_data); in dsa_slave_set_mac_address()
184 struct net_device *dev; member
214 ndm->ndm_ifindex = dump->dev->ifindex; in dsa_slave_port_fdb_do_dump()
236 struct net_device *dev, struct net_device *filter_dev, in dsa_slave_fdb_dump() argument
239 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_fdb_dump()
241 .dev = dev, in dsa_slave_fdb_dump()
254 static int dsa_slave_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) in dsa_slave_ioctl() argument
256 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_ioctl()
275 static int dsa_slave_port_attr_set(struct net_device *dev, in dsa_slave_port_attr_set() argument
279 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_attr_set()
311 static int dsa_slave_vlan_add(struct net_device *dev, in dsa_slave_vlan_add() argument
315 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_add()
319 if (obj->orig_dev != dev) in dsa_slave_vlan_add()
344 static int dsa_slave_port_obj_add(struct net_device *dev, in dsa_slave_port_obj_add() argument
349 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_obj_add()
359 if (obj->orig_dev != dev) in dsa_slave_port_obj_add()
371 err = dsa_slave_vlan_add(dev, obj, trans); in dsa_slave_port_obj_add()
381 static int dsa_slave_vlan_del(struct net_device *dev, in dsa_slave_vlan_del() argument
384 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_del()
386 if (obj->orig_dev != dev) in dsa_slave_vlan_del()
398 static int dsa_slave_port_obj_del(struct net_device *dev, in dsa_slave_port_obj_del() argument
401 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_port_obj_del()
406 if (obj->orig_dev != dev) in dsa_slave_port_obj_del()
417 err = dsa_slave_vlan_del(dev, obj); in dsa_slave_port_obj_del()
427 static int dsa_slave_get_port_parent_id(struct net_device *dev, in dsa_slave_get_port_parent_id() argument
430 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_port_parent_id()
447 static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev, in dsa_slave_netpoll_send_skb() argument
451 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_netpoll_send_skb()
487 netdev_tx_t dsa_enqueue_skb(struct sk_buff *skb, struct net_device *dev) in dsa_enqueue_skb() argument
492 if (unlikely(netpoll_tx_running(dev))) in dsa_enqueue_skb()
493 return dsa_slave_netpoll_send_skb(dev, skb); in dsa_enqueue_skb()
498 skb->dev = dsa_slave_to_master(dev); in dsa_enqueue_skb()
505 static netdev_tx_t dsa_slave_xmit(struct sk_buff *skb, struct net_device *dev) in dsa_slave_xmit() argument
507 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_xmit()
528 nskb = p->xmit(skb, dev); in dsa_slave_xmit()
535 return dsa_enqueue_skb(nskb, dev); in dsa_slave_xmit()
538 void *dsa_defer_xmit(struct sk_buff *skb, struct net_device *dev) in dsa_defer_xmit() argument
540 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_defer_xmit()
565 static void dsa_slave_get_drvinfo(struct net_device *dev, in dsa_slave_get_drvinfo() argument
573 static int dsa_slave_get_regs_len(struct net_device *dev) in dsa_slave_get_regs_len() argument
575 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_regs_len()
585 dsa_slave_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *_p) in dsa_slave_get_regs() argument
587 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_regs()
594 static int dsa_slave_nway_reset(struct net_device *dev) in dsa_slave_nway_reset() argument
596 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_nway_reset()
601 static int dsa_slave_get_eeprom_len(struct net_device *dev) in dsa_slave_get_eeprom_len() argument
603 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eeprom_len()
615 static int dsa_slave_get_eeprom(struct net_device *dev, in dsa_slave_get_eeprom() argument
618 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eeprom()
627 static int dsa_slave_set_eeprom(struct net_device *dev, in dsa_slave_set_eeprom() argument
630 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_eeprom()
639 static void dsa_slave_get_strings(struct net_device *dev, in dsa_slave_get_strings() argument
642 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_strings()
658 static void dsa_slave_get_ethtool_stats(struct net_device *dev, in dsa_slave_get_ethtool_stats() argument
662 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_ethtool_stats()
663 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_ethtool_stats()
689 static int dsa_slave_get_sset_count(struct net_device *dev, int sset) in dsa_slave_get_sset_count() argument
691 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_sset_count()
709 static void dsa_slave_get_wol(struct net_device *dev, struct ethtool_wolinfo *w) in dsa_slave_get_wol() argument
711 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_wol()
720 static int dsa_slave_set_wol(struct net_device *dev, struct ethtool_wolinfo *w) in dsa_slave_set_wol() argument
722 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_wol()
734 static int dsa_slave_set_eee(struct net_device *dev, struct ethtool_eee *e) in dsa_slave_set_eee() argument
736 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_eee()
741 if (!dev->phydev || !dp->pl) in dsa_slave_set_eee()
754 static int dsa_slave_get_eee(struct net_device *dev, struct ethtool_eee *e) in dsa_slave_get_eee() argument
756 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_eee()
761 if (!dev->phydev || !dp->pl) in dsa_slave_get_eee()
774 static int dsa_slave_get_link_ksettings(struct net_device *dev, in dsa_slave_get_link_ksettings() argument
777 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_link_ksettings()
782 static int dsa_slave_set_link_ksettings(struct net_device *dev, in dsa_slave_set_link_ksettings() argument
785 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_link_ksettings()
791 static int dsa_slave_netpoll_setup(struct net_device *dev, in dsa_slave_netpoll_setup() argument
794 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_netpoll_setup()
795 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_netpoll_setup()
814 static void dsa_slave_netpoll_cleanup(struct net_device *dev) in dsa_slave_netpoll_cleanup() argument
816 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_netpoll_cleanup()
827 static void dsa_slave_poll_controller(struct net_device *dev) in dsa_slave_poll_controller() argument
832 static int dsa_slave_get_phys_port_name(struct net_device *dev, in dsa_slave_get_phys_port_name() argument
835 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_phys_port_name()
851 dsa_slave_mall_tc_entry_find(struct net_device *dev, unsigned long cookie) in dsa_slave_mall_tc_entry_find() argument
853 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_mall_tc_entry_find()
863 static int dsa_slave_add_cls_matchall(struct net_device *dev, in dsa_slave_add_cls_matchall() argument
867 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_add_cls_matchall()
868 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_add_cls_matchall()
887 if (!act->dev) in dsa_slave_add_cls_matchall()
890 if (!dsa_slave_dev_check(act->dev)) in dsa_slave_add_cls_matchall()
901 to_dp = dsa_slave_to_port(act->dev); in dsa_slave_add_cls_matchall()
918 static void dsa_slave_del_cls_matchall(struct net_device *dev, in dsa_slave_del_cls_matchall() argument
921 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_del_cls_matchall()
928 mall_tc_entry = dsa_slave_mall_tc_entry_find(dev, cls->cookie); in dsa_slave_del_cls_matchall()
945 static int dsa_slave_setup_tc_cls_matchall(struct net_device *dev, in dsa_slave_setup_tc_cls_matchall() argument
954 return dsa_slave_add_cls_matchall(dev, cls, ingress); in dsa_slave_setup_tc_cls_matchall()
956 dsa_slave_del_cls_matchall(dev, cls); in dsa_slave_setup_tc_cls_matchall()
966 struct net_device *dev = cb_priv; in dsa_slave_setup_tc_block_cb() local
968 if (!tc_can_offload(dev)) in dsa_slave_setup_tc_block_cb()
973 return dsa_slave_setup_tc_cls_matchall(dev, type_data, ingress); in dsa_slave_setup_tc_block_cb()
993 static int dsa_slave_setup_tc_block(struct net_device *dev, in dsa_slave_setup_tc_block() argument
1010 if (flow_block_cb_is_busy(cb, dev, &dsa_slave_block_cb_list)) in dsa_slave_setup_tc_block()
1013 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_slave_setup_tc_block()
1021 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_slave_setup_tc_block()
1033 static int dsa_slave_setup_tc(struct net_device *dev, enum tc_setup_type type, in dsa_slave_setup_tc() argument
1036 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_setup_tc()
1040 return dsa_slave_setup_tc_block(dev, type_data); in dsa_slave_setup_tc()
1048 static void dsa_slave_get_stats64(struct net_device *dev, in dsa_slave_get_stats64() argument
1051 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_stats64()
1056 netdev_stats_to_stats64(stats, &dev->stats); in dsa_slave_get_stats64()
1076 static int dsa_slave_get_rxnfc(struct net_device *dev, in dsa_slave_get_rxnfc() argument
1079 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_rxnfc()
1088 static int dsa_slave_set_rxnfc(struct net_device *dev, in dsa_slave_set_rxnfc() argument
1091 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_set_rxnfc()
1100 static int dsa_slave_get_ts_info(struct net_device *dev, in dsa_slave_get_ts_info() argument
1103 struct dsa_slave_priv *p = netdev_priv(dev); in dsa_slave_get_ts_info()
1112 static int dsa_slave_vlan_rx_add_vid(struct net_device *dev, __be16 proto, in dsa_slave_vlan_rx_add_vid() argument
1115 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_rx_add_vid()
1146 static int dsa_slave_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, in dsa_slave_vlan_rx_kill_vid() argument
1149 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_vlan_rx_kill_vid()
1200 struct net_device *dev, in dsa_legacy_fdb_add() argument
1205 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_legacy_fdb_add()
1211 struct net_device *dev, in dsa_legacy_fdb_del() argument
1214 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_legacy_fdb_del()
1219 static struct devlink_port *dsa_slave_get_devlink_port(struct net_device *dev) in dsa_slave_get_devlink_port() argument
1221 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_get_devlink_port()
1264 static void dsa_slave_phylink_fixed_state(struct net_device *dev, in dsa_slave_phylink_fixed_state() argument
1267 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_phylink_fixed_state()
1303 dp->pl_config.dev = &slave_dev->dev; in dsa_slave_phy_setup()
1375 static void dsa_slave_notify(struct net_device *dev, unsigned long val) in dsa_slave_notify() argument
1377 struct net_device *master = dsa_slave_to_master(dev); in dsa_slave_notify()
1378 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_notify()
1383 .info.dev = dev, in dsa_slave_notify()
1386 call_dsa_notifiers(val, dev, &rinfo.info); in dsa_slave_notify()
1424 SET_NETDEV_DEV(slave_dev, port->ds->dev); in dsa_slave_create()
1425 slave_dev->dev.of_node = port->dn; in dsa_slave_create()
1497 static bool dsa_slave_dev_check(const struct net_device *dev) in dsa_slave_dev_check() argument
1499 return dev->netdev_ops == &dsa_slave_netdev_ops; in dsa_slave_dev_check()
1502 static int dsa_slave_changeupper(struct net_device *dev, in dsa_slave_changeupper() argument
1505 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_changeupper()
1521 static int dsa_slave_upper_vlan_check(struct net_device *dev, in dsa_slave_upper_vlan_check() argument
1531 if (!is_vlan_dev(dev)) in dsa_slave_upper_vlan_check()
1534 slave = vlan_dev_real_dev(dev); in dsa_slave_upper_vlan_check()
1556 struct net_device *dev = netdev_notifier_info_to_dev(ptr); in dsa_slave_netdevice_event() local
1559 if (!dsa_slave_dev_check(dev)) in dsa_slave_netdevice_event()
1560 return dsa_slave_upper_vlan_check(dev, ptr); in dsa_slave_netdevice_event()
1562 return dsa_slave_changeupper(dev, ptr); in dsa_slave_netdevice_event()
1571 struct net_device *dev; member
1579 struct net_device *dev = switchdev_work->dev; in dsa_slave_switchdev_event_work() local
1581 struct dsa_port *dp = dsa_slave_to_port(dev); in dsa_slave_switchdev_event_work()
1593 netdev_dbg(dev, "fdb add failed err=%d\n", err); in dsa_slave_switchdev_event_work()
1597 call_switchdev_notifiers(SWITCHDEV_FDB_OFFLOADED, dev, in dsa_slave_switchdev_event_work()
1608 netdev_dbg(dev, "fdb del failed err=%d\n", err); in dsa_slave_switchdev_event_work()
1609 dev_close(dev); in dsa_slave_switchdev_event_work()
1617 dev_put(dev); in dsa_slave_switchdev_event_work()
1640 struct net_device *dev = switchdev_notifier_info_to_dev(ptr); in dsa_slave_switchdev_event() local
1645 err = switchdev_handle_port_attr_set(dev, ptr, in dsa_slave_switchdev_event()
1651 if (!dsa_slave_dev_check(dev)) in dsa_slave_switchdev_event()
1660 switchdev_work->dev = dev; in dsa_slave_switchdev_event()
1668 dev_hold(dev); in dsa_slave_switchdev_event()
1686 struct net_device *dev = switchdev_notifier_info_to_dev(ptr); in dsa_slave_switchdev_blocking_event() local
1691 err = switchdev_handle_port_obj_add(dev, ptr, in dsa_slave_switchdev_blocking_event()
1696 err = switchdev_handle_port_obj_del(dev, ptr, in dsa_slave_switchdev_blocking_event()
1701 err = switchdev_handle_port_attr_set(dev, ptr, in dsa_slave_switchdev_blocking_event()