Lines Matching refs:dev

35 	struct net_device *dev;  member
56 struct net_device *dev; member
63 struct net_device *dev; member
87 struct net_device *dev = standalone_work->dev; in dsa_user_standalone_event_work() local
88 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_standalone_event_work()
98 dev_err(ds->dev, in dsa_user_standalone_event_work()
108 dev_err(ds->dev, in dsa_user_standalone_event_work()
120 dev_err(ds->dev, in dsa_user_standalone_event_work()
132 dev_err(ds->dev, in dsa_user_standalone_event_work()
143 static int dsa_user_schedule_standalone_work(struct net_device *dev, in dsa_user_schedule_standalone_work() argument
156 standalone_work->dev = dev; in dsa_user_schedule_standalone_work()
170 return dsa_user_schedule_standalone_work(ctx->dev, ctx->event, in dsa_user_host_vlan_rx_filtering()
174 static int dsa_user_vlan_for_each(struct net_device *dev, in dsa_user_vlan_for_each() argument
177 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_vlan_for_each()
181 lockdep_assert_held(&dev->addr_list_lock); in dsa_user_vlan_for_each()
196 static int dsa_user_sync_uc(struct net_device *dev, in dsa_user_sync_uc() argument
199 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_sync_uc()
200 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_sync_uc()
202 .dev = dev, in dsa_user_sync_uc()
212 return dsa_user_vlan_for_each(dev, dsa_user_host_vlan_rx_filtering, in dsa_user_sync_uc()
216 static int dsa_user_unsync_uc(struct net_device *dev, in dsa_user_unsync_uc() argument
219 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_unsync_uc()
220 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_unsync_uc()
222 .dev = dev, in dsa_user_unsync_uc()
232 return dsa_user_vlan_for_each(dev, dsa_user_host_vlan_rx_filtering, in dsa_user_unsync_uc()
236 static int dsa_user_sync_mc(struct net_device *dev, in dsa_user_sync_mc() argument
239 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_sync_mc()
240 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_sync_mc()
242 .dev = dev, in dsa_user_sync_mc()
252 return dsa_user_vlan_for_each(dev, dsa_user_host_vlan_rx_filtering, in dsa_user_sync_mc()
256 static int dsa_user_unsync_mc(struct net_device *dev, in dsa_user_unsync_mc() argument
259 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_unsync_mc()
260 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_unsync_mc()
262 .dev = dev, in dsa_user_unsync_mc()
272 return dsa_user_vlan_for_each(dev, dsa_user_host_vlan_rx_filtering, in dsa_user_unsync_mc()
276 void dsa_user_sync_ha(struct net_device *dev) in dsa_user_sync_ha() argument
278 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_sync_ha()
282 netif_addr_lock_bh(dev); in dsa_user_sync_ha()
284 netdev_for_each_synced_mc_addr(ha, dev) in dsa_user_sync_ha()
285 dsa_user_sync_mc(dev, ha->addr); in dsa_user_sync_ha()
287 netdev_for_each_synced_uc_addr(ha, dev) in dsa_user_sync_ha()
288 dsa_user_sync_uc(dev, ha->addr); in dsa_user_sync_ha()
290 netif_addr_unlock_bh(dev); in dsa_user_sync_ha()
297 void dsa_user_unsync_ha(struct net_device *dev) in dsa_user_unsync_ha() argument
299 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_unsync_ha()
303 netif_addr_lock_bh(dev); in dsa_user_unsync_ha()
305 netdev_for_each_synced_uc_addr(ha, dev) in dsa_user_unsync_ha()
306 dsa_user_unsync_uc(dev, ha->addr); in dsa_user_unsync_ha()
308 netdev_for_each_synced_mc_addr(ha, dev) in dsa_user_unsync_ha()
309 dsa_user_unsync_mc(dev, ha->addr); in dsa_user_unsync_ha()
311 netif_addr_unlock_bh(dev); in dsa_user_unsync_ha()
347 ds->user_mii_bus->parent = ds->dev; in dsa_user_mii_bus_init()
353 static int dsa_user_get_iflink(const struct net_device *dev) in dsa_user_get_iflink() argument
355 return READ_ONCE(dsa_user_to_conduit(dev)->ifindex); in dsa_user_get_iflink()
358 int dsa_user_host_uc_install(struct net_device *dev, const u8 *addr) in dsa_user_host_uc_install() argument
360 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_host_uc_install()
361 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_host_uc_install()
386 void dsa_user_host_uc_uninstall(struct net_device *dev) in dsa_user_host_uc_uninstall() argument
388 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_host_uc_uninstall()
389 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_host_uc_uninstall()
392 if (!ether_addr_equal(dev->dev_addr, conduit->dev_addr)) in dsa_user_host_uc_uninstall()
393 dev_uc_del(conduit, dev->dev_addr); in dsa_user_host_uc_uninstall()
396 dsa_port_standalone_host_fdb_del(dp, dev->dev_addr, 0); in dsa_user_host_uc_uninstall()
399 static int dsa_user_open(struct net_device *dev) in dsa_user_open() argument
401 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_open()
402 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_open()
407 netdev_err(dev, "failed to open conduit %s\n", conduit->name); in dsa_user_open()
411 err = dsa_user_host_uc_install(dev, dev->dev_addr); in dsa_user_open()
415 err = dsa_port_enable_rt(dp, dev->phydev); in dsa_user_open()
422 dsa_user_host_uc_uninstall(dev); in dsa_user_open()
427 static int dsa_user_close(struct net_device *dev) in dsa_user_close() argument
429 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_close()
433 dsa_user_host_uc_uninstall(dev); in dsa_user_close()
438 static void dsa_user_manage_host_flood(struct net_device *dev) in dsa_user_manage_host_flood() argument
440 bool mc = dev->flags & (IFF_PROMISC | IFF_ALLMULTI); in dsa_user_manage_host_flood()
441 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_manage_host_flood()
442 bool uc = dev->flags & IFF_PROMISC; in dsa_user_manage_host_flood()
447 static void dsa_user_change_rx_flags(struct net_device *dev, int change) in dsa_user_change_rx_flags() argument
449 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_change_rx_flags()
450 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_change_rx_flags()
455 dev->flags & IFF_ALLMULTI ? 1 : -1); in dsa_user_change_rx_flags()
458 dev->flags & IFF_PROMISC ? 1 : -1); in dsa_user_change_rx_flags()
462 dsa_user_manage_host_flood(dev); in dsa_user_change_rx_flags()
465 static void dsa_user_set_rx_mode(struct net_device *dev) in dsa_user_set_rx_mode() argument
467 __dev_mc_sync(dev, dsa_user_sync_mc, dsa_user_unsync_mc); in dsa_user_set_rx_mode()
468 __dev_uc_sync(dev, dsa_user_sync_uc, dsa_user_unsync_uc); in dsa_user_set_rx_mode()
471 static int dsa_user_set_mac_address(struct net_device *dev, void *a) in dsa_user_set_mac_address() argument
473 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_mac_address()
491 if (!(dev->flags & IFF_UP)) in dsa_user_set_mac_address()
494 err = dsa_user_host_uc_install(dev, addr->sa_data); in dsa_user_set_mac_address()
498 dsa_user_host_uc_uninstall(dev); in dsa_user_set_mac_address()
501 eth_hw_addr_set(dev, addr->sa_data); in dsa_user_set_mac_address()
507 struct net_device *dev; member
538 ndm->ndm_ifindex = dump->dev->ifindex; in dsa_user_port_fdb_do_dump()
560 struct net_device *dev, struct net_device *filter_dev, in dsa_user_fdb_dump() argument
563 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_fdb_dump()
565 .dev = dev, in dsa_user_fdb_dump()
578 static int dsa_user_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) in dsa_user_ioctl() argument
580 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_ioctl()
585 static int dsa_user_port_attr_set(struct net_device *dev, const void *ctx, in dsa_user_port_attr_set() argument
589 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_port_attr_set()
676 static int dsa_user_vlan_add(struct net_device *dev, in dsa_user_vlan_add() argument
680 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_vlan_add()
696 err = dsa_user_vlan_check_for_8021q_uppers(dev, vlan); in dsa_user_vlan_add()
711 static int dsa_user_host_vlan_add(struct net_device *dev, in dsa_user_host_vlan_add() argument
715 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_host_vlan_add()
737 static int dsa_user_port_obj_add(struct net_device *dev, const void *ctx, in dsa_user_port_obj_add() argument
741 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_port_obj_add()
762 err = dsa_user_vlan_add(dev, obj, extack); in dsa_user_port_obj_add()
764 err = dsa_user_host_vlan_add(dev, obj, extack); in dsa_user_port_obj_add()
787 static int dsa_user_vlan_del(struct net_device *dev, in dsa_user_vlan_del() argument
790 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_vlan_del()
801 static int dsa_user_host_vlan_del(struct net_device *dev, in dsa_user_host_vlan_del() argument
804 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_host_vlan_del()
819 static int dsa_user_port_obj_del(struct net_device *dev, const void *ctx, in dsa_user_port_obj_del() argument
822 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_port_obj_del()
843 err = dsa_user_vlan_del(dev, obj); in dsa_user_port_obj_del()
845 err = dsa_user_host_vlan_del(dev, obj); in dsa_user_port_obj_del()
868 static netdev_tx_t dsa_user_netpoll_send_skb(struct net_device *dev, in dsa_user_netpoll_send_skb() argument
872 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_netpoll_send_skb()
895 netdev_tx_t dsa_enqueue_skb(struct sk_buff *skb, struct net_device *dev) in dsa_enqueue_skb() argument
900 if (unlikely(netpoll_tx_running(dev))) in dsa_enqueue_skb()
901 return dsa_user_netpoll_send_skb(dev, skb); in dsa_enqueue_skb()
906 skb->dev = dsa_user_to_conduit(dev); in dsa_enqueue_skb()
913 static netdev_tx_t dsa_user_xmit(struct sk_buff *skb, struct net_device *dev) in dsa_user_xmit() argument
915 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_xmit()
918 dev_sw_netstats_tx_add(dev, 1, skb->len); in dsa_user_xmit()
925 if (skb_ensure_writable_head_tail(skb, dev)) { in dsa_user_xmit()
934 if (dev->needed_tailroom) in dsa_user_xmit()
940 nskb = p->xmit(skb, dev); in dsa_user_xmit()
946 return dsa_enqueue_skb(nskb, dev); in dsa_user_xmit()
951 static void dsa_user_get_drvinfo(struct net_device *dev, in dsa_user_get_drvinfo() argument
959 static int dsa_user_get_regs_len(struct net_device *dev) in dsa_user_get_regs_len() argument
961 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_regs_len()
971 dsa_user_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *_p) in dsa_user_get_regs() argument
973 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_regs()
980 static int dsa_user_nway_reset(struct net_device *dev) in dsa_user_nway_reset() argument
982 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_nway_reset()
987 static int dsa_user_get_eeprom_len(struct net_device *dev) in dsa_user_get_eeprom_len() argument
989 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eeprom_len()
1001 static int dsa_user_get_eeprom(struct net_device *dev, in dsa_user_get_eeprom() argument
1004 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eeprom()
1013 static int dsa_user_set_eeprom(struct net_device *dev, in dsa_user_set_eeprom() argument
1016 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_eeprom()
1025 static void dsa_user_get_strings(struct net_device *dev, in dsa_user_get_strings() argument
1028 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_strings()
1044 static void dsa_user_get_ethtool_stats(struct net_device *dev, in dsa_user_get_ethtool_stats() argument
1048 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_ethtool_stats()
1057 s = per_cpu_ptr(dev->tstats, i); in dsa_user_get_ethtool_stats()
1074 static int dsa_user_get_sset_count(struct net_device *dev, int sset) in dsa_user_get_sset_count() argument
1076 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_sset_count()
1096 static void dsa_user_get_eth_phy_stats(struct net_device *dev, in dsa_user_get_eth_phy_stats() argument
1099 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eth_phy_stats()
1106 static void dsa_user_get_eth_mac_stats(struct net_device *dev, in dsa_user_get_eth_mac_stats() argument
1109 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eth_mac_stats()
1117 dsa_user_get_eth_ctrl_stats(struct net_device *dev, in dsa_user_get_eth_ctrl_stats() argument
1120 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eth_ctrl_stats()
1128 dsa_user_get_rmon_stats(struct net_device *dev, in dsa_user_get_rmon_stats() argument
1132 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_rmon_stats()
1139 static void dsa_user_get_ts_stats(struct net_device *dev, in dsa_user_get_ts_stats() argument
1142 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_ts_stats()
1163 static int dsa_user_get_mm(struct net_device *dev, in dsa_user_get_mm() argument
1166 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_mm()
1175 static int dsa_user_set_mm(struct net_device *dev, struct ethtool_mm_cfg *cfg, in dsa_user_set_mm() argument
1178 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_mm()
1187 static void dsa_user_get_mm_stats(struct net_device *dev, in dsa_user_get_mm_stats() argument
1190 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_mm_stats()
1197 static void dsa_user_get_wol(struct net_device *dev, struct ethtool_wolinfo *w) in dsa_user_get_wol() argument
1199 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_wol()
1208 static int dsa_user_set_wol(struct net_device *dev, struct ethtool_wolinfo *w) in dsa_user_set_wol() argument
1210 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_wol()
1222 static int dsa_user_set_eee(struct net_device *dev, struct ethtool_keee *e) in dsa_user_set_eee() argument
1224 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_eee()
1237 if (!dev->phydev) in dsa_user_set_eee()
1255 static int dsa_user_get_eee(struct net_device *dev, struct ethtool_keee *e) in dsa_user_get_eee() argument
1257 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_eee()
1265 if (!dev->phydev) in dsa_user_get_eee()
1271 static int dsa_user_get_link_ksettings(struct net_device *dev, in dsa_user_get_link_ksettings() argument
1274 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_link_ksettings()
1279 static int dsa_user_set_link_ksettings(struct net_device *dev, in dsa_user_set_link_ksettings() argument
1282 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_link_ksettings()
1287 static void dsa_user_get_pause_stats(struct net_device *dev, in dsa_user_get_pause_stats() argument
1290 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_pause_stats()
1297 static void dsa_user_get_pauseparam(struct net_device *dev, in dsa_user_get_pauseparam() argument
1300 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_pauseparam()
1305 static int dsa_user_set_pauseparam(struct net_device *dev, in dsa_user_set_pauseparam() argument
1308 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_pauseparam()
1314 static int dsa_user_netpoll_setup(struct net_device *dev) in dsa_user_netpoll_setup() argument
1316 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_netpoll_setup()
1317 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_netpoll_setup()
1336 static void dsa_user_netpoll_cleanup(struct net_device *dev) in dsa_user_netpoll_cleanup() argument
1338 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_netpoll_cleanup()
1349 static void dsa_user_poll_controller(struct net_device *dev) in dsa_user_poll_controller() argument
1355 dsa_user_mall_tc_entry_find(struct net_device *dev, unsigned long cookie) in dsa_user_mall_tc_entry_find() argument
1357 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_mall_tc_entry_find()
1368 dsa_user_add_cls_matchall_mirred(struct net_device *dev, in dsa_user_add_cls_matchall_mirred() argument
1373 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_add_cls_matchall_mirred()
1374 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_add_cls_matchall_mirred()
1399 if (!act->dev) in dsa_user_add_cls_matchall_mirred()
1402 if (dsa_user_dev_check(act->dev)) { in dsa_user_add_cls_matchall_mirred()
1412 to_dp = dsa_user_to_port(act->dev); in dsa_user_add_cls_matchall_mirred()
1455 dsa_user_add_cls_matchall_police(struct net_device *dev, in dsa_user_add_cls_matchall_police() argument
1460 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_add_cls_matchall_police()
1461 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_add_cls_matchall_police()
1514 static int dsa_user_add_cls_matchall(struct net_device *dev, in dsa_user_add_cls_matchall() argument
1529 return dsa_user_add_cls_matchall_mirred(dev, cls, ingress, in dsa_user_add_cls_matchall()
1532 return dsa_user_add_cls_matchall_mirred(dev, cls, ingress, in dsa_user_add_cls_matchall()
1535 return dsa_user_add_cls_matchall_police(dev, cls, ingress); in dsa_user_add_cls_matchall()
1544 static void dsa_user_del_cls_matchall(struct net_device *dev, in dsa_user_del_cls_matchall() argument
1547 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_del_cls_matchall()
1551 mall_tc_entry = dsa_user_mall_tc_entry_find(dev, cls->cookie); in dsa_user_del_cls_matchall()
1574 static int dsa_user_setup_tc_cls_matchall(struct net_device *dev, in dsa_user_setup_tc_cls_matchall() argument
1583 return dsa_user_add_cls_matchall(dev, cls, ingress); in dsa_user_setup_tc_cls_matchall()
1585 dsa_user_del_cls_matchall(dev, cls); in dsa_user_setup_tc_cls_matchall()
1592 static int dsa_user_add_cls_flower(struct net_device *dev, in dsa_user_add_cls_flower() argument
1596 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_add_cls_flower()
1606 static int dsa_user_del_cls_flower(struct net_device *dev, in dsa_user_del_cls_flower() argument
1610 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_del_cls_flower()
1620 static int dsa_user_stats_cls_flower(struct net_device *dev, in dsa_user_stats_cls_flower() argument
1624 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_stats_cls_flower()
1634 static int dsa_user_setup_tc_cls_flower(struct net_device *dev, in dsa_user_setup_tc_cls_flower() argument
1640 return dsa_user_add_cls_flower(dev, cls, ingress); in dsa_user_setup_tc_cls_flower()
1642 return dsa_user_del_cls_flower(dev, cls, ingress); in dsa_user_setup_tc_cls_flower()
1644 return dsa_user_stats_cls_flower(dev, cls, ingress); in dsa_user_setup_tc_cls_flower()
1653 struct net_device *dev = cb_priv; in dsa_user_setup_tc_block_cb() local
1655 if (!tc_can_offload(dev)) in dsa_user_setup_tc_block_cb()
1660 return dsa_user_setup_tc_cls_matchall(dev, type_data, ingress); in dsa_user_setup_tc_block_cb()
1662 return dsa_user_setup_tc_cls_flower(dev, type_data, ingress); in dsa_user_setup_tc_block_cb()
1682 static int dsa_user_setup_tc_block(struct net_device *dev, in dsa_user_setup_tc_block() argument
1699 if (flow_block_cb_is_busy(cb, dev, &dsa_user_block_cb_list)) in dsa_user_setup_tc_block()
1702 block_cb = flow_block_cb_alloc(cb, dev, dev, NULL); in dsa_user_setup_tc_block()
1710 block_cb = flow_block_cb_lookup(f->block, cb, dev); in dsa_user_setup_tc_block()
1733 static int dsa_user_setup_tc(struct net_device *dev, enum tc_setup_type type, in dsa_user_setup_tc() argument
1736 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_setup_tc()
1741 return dsa_user_setup_tc_block(dev, type_data); in dsa_user_setup_tc()
1754 static int dsa_user_get_rxnfc(struct net_device *dev, in dsa_user_get_rxnfc() argument
1757 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_rxnfc()
1766 static int dsa_user_set_rxnfc(struct net_device *dev, in dsa_user_set_rxnfc() argument
1769 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_set_rxnfc()
1778 static int dsa_user_get_ts_info(struct net_device *dev, in dsa_user_get_ts_info() argument
1781 struct dsa_user_priv *p = netdev_priv(dev); in dsa_user_get_ts_info()
1790 static int dsa_user_vlan_rx_add_vid(struct net_device *dev, __be16 proto, in dsa_user_vlan_rx_add_vid() argument
1793 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_vlan_rx_add_vid()
1810 netdev_err(dev, "%s\n", extack._msg); in dsa_user_vlan_rx_add_vid()
1818 netdev_err(dev, "CPU port %d: %s\n", dp->cpu_dp->index, in dsa_user_vlan_rx_add_vid()
1833 netif_addr_lock_bh(dev); in dsa_user_vlan_rx_add_vid()
1839 netdev_for_each_synced_mc_addr(ha, dev) { in dsa_user_vlan_rx_add_vid()
1840 dsa_user_schedule_standalone_work(dev, DSA_MC_ADD, in dsa_user_vlan_rx_add_vid()
1846 netdev_for_each_synced_uc_addr(ha, dev) { in dsa_user_vlan_rx_add_vid()
1847 dsa_user_schedule_standalone_work(dev, DSA_UC_ADD, in dsa_user_vlan_rx_add_vid()
1852 netif_addr_unlock_bh(dev); in dsa_user_vlan_rx_add_vid()
1865 static int dsa_user_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, in dsa_user_vlan_rx_kill_vid() argument
1868 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_vlan_rx_kill_vid()
1891 netif_addr_lock_bh(dev); in dsa_user_vlan_rx_kill_vid()
1895 netif_addr_unlock_bh(dev); in dsa_user_vlan_rx_kill_vid()
1903 netdev_for_each_synced_mc_addr(ha, dev) { in dsa_user_vlan_rx_kill_vid()
1904 dsa_user_schedule_standalone_work(dev, DSA_MC_DEL, in dsa_user_vlan_rx_kill_vid()
1910 netdev_for_each_synced_uc_addr(ha, dev) { in dsa_user_vlan_rx_kill_vid()
1911 dsa_user_schedule_standalone_work(dev, DSA_UC_DEL, in dsa_user_vlan_rx_kill_vid()
1916 netif_addr_unlock_bh(dev); in dsa_user_vlan_rx_kill_vid()
1995 struct net_device *dev; member
2005 if (p->dev->mtu == mtu) in dsa_hw_port_list_set_mtu()
2008 err = dev_set_mtu(p->dev, mtu); in dsa_hw_port_list_set_mtu()
2017 if (p->dev->mtu == p->old_mtu) in dsa_hw_port_list_set_mtu()
2020 if (dev_set_mtu(p->dev, p->old_mtu)) in dsa_hw_port_list_set_mtu()
2021 netdev_err(p->dev, "Failed to restore MTU\n"); in dsa_hw_port_list_set_mtu()
2078 hw_port->dev = user; in dsa_bridge_mtu_normalization()
2103 int dsa_user_change_mtu(struct net_device *dev, int new_mtu) in dsa_user_change_mtu() argument
2105 struct net_device *conduit = dsa_user_to_conduit(dev); in dsa_user_change_mtu()
2106 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_change_mtu()
2144 mtu_limit = min_t(int, conduit->max_mtu, dev->max_mtu + overhead); in dsa_user_change_mtu()
2173 WRITE_ONCE(dev->mtu, new_mtu); in dsa_user_change_mtu()
2190 dsa_user_dcbnl_set_apptrust(struct net_device *dev, u8 *sel, int nsel) in dsa_user_dcbnl_set_apptrust() argument
2192 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_set_apptrust()
2203 dsa_user_dcbnl_get_apptrust(struct net_device *dev, u8 *sel, int *nsel) in dsa_user_dcbnl_get_apptrust() argument
2205 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_get_apptrust()
2216 dsa_user_dcbnl_set_default_prio(struct net_device *dev, struct dcb_app *app) in dsa_user_dcbnl_set_default_prio() argument
2218 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_set_default_prio()
2226 err = dcb_ieee_setapp(dev, app); in dsa_user_dcbnl_set_default_prio()
2230 mask = dcb_ieee_getapp_mask(dev, app); in dsa_user_dcbnl_set_default_prio()
2235 dcb_ieee_delapp(dev, app); in dsa_user_dcbnl_set_default_prio()
2245 static int dsa_user_dcbnl_ieee_global_dscp_setdel(struct net_device *dev, in dsa_user_dcbnl_ieee_global_dscp_setdel() argument
2248 int (*setdel)(struct net_device *dev, struct dcb_app *app); in dsa_user_dcbnl_ieee_global_dscp_setdel()
2249 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_ieee_global_dscp_setdel()
2262 if (!user || user == dev) in dsa_user_dcbnl_ieee_global_dscp_setdel()
2283 if (!user || user == dev) in dsa_user_dcbnl_ieee_global_dscp_setdel()
2295 dsa_user_dcbnl_add_dscp_prio(struct net_device *dev, struct dcb_app *app) in dsa_user_dcbnl_add_dscp_prio() argument
2297 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_add_dscp_prio()
2307 netdev_err(dev, "DSCP APP entry with protocol value %u is invalid\n", in dsa_user_dcbnl_add_dscp_prio()
2312 err = dcb_ieee_setapp(dev, app); in dsa_user_dcbnl_add_dscp_prio()
2316 mask = dcb_ieee_getapp_mask(dev, app); in dsa_user_dcbnl_add_dscp_prio()
2321 dcb_ieee_delapp(dev, app); in dsa_user_dcbnl_add_dscp_prio()
2328 err = dsa_user_dcbnl_ieee_global_dscp_setdel(dev, app, false); in dsa_user_dcbnl_add_dscp_prio()
2332 dcb_ieee_delapp(dev, app); in dsa_user_dcbnl_add_dscp_prio()
2339 static int __maybe_unused dsa_user_dcbnl_ieee_setapp(struct net_device *dev, in dsa_user_dcbnl_ieee_setapp() argument
2346 return dsa_user_dcbnl_set_default_prio(dev, app); in dsa_user_dcbnl_ieee_setapp()
2352 return dsa_user_dcbnl_add_dscp_prio(dev, app); in dsa_user_dcbnl_ieee_setapp()
2359 dsa_user_dcbnl_del_default_prio(struct net_device *dev, struct dcb_app *app) in dsa_user_dcbnl_del_default_prio() argument
2361 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_del_default_prio()
2369 err = dcb_ieee_delapp(dev, app); in dsa_user_dcbnl_del_default_prio()
2373 mask = dcb_ieee_getapp_mask(dev, app); in dsa_user_dcbnl_del_default_prio()
2378 dcb_ieee_setapp(dev, app); in dsa_user_dcbnl_del_default_prio()
2386 dsa_user_dcbnl_del_dscp_prio(struct net_device *dev, struct dcb_app *app) in dsa_user_dcbnl_del_dscp_prio() argument
2388 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_del_dscp_prio()
2396 err = dcb_ieee_delapp(dev, app); in dsa_user_dcbnl_del_dscp_prio()
2402 dcb_ieee_setapp(dev, app); in dsa_user_dcbnl_del_dscp_prio()
2409 err = dsa_user_dcbnl_ieee_global_dscp_setdel(dev, app, true); in dsa_user_dcbnl_del_dscp_prio()
2414 dcb_ieee_setapp(dev, app); in dsa_user_dcbnl_del_dscp_prio()
2421 static int __maybe_unused dsa_user_dcbnl_ieee_delapp(struct net_device *dev, in dsa_user_dcbnl_ieee_delapp() argument
2428 return dsa_user_dcbnl_del_default_prio(dev, app); in dsa_user_dcbnl_ieee_delapp()
2434 return dsa_user_dcbnl_del_dscp_prio(dev, app); in dsa_user_dcbnl_ieee_delapp()
2443 static int dsa_user_dcbnl_init(struct net_device *dev) in dsa_user_dcbnl_init() argument
2445 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_dcbnl_init()
2461 err = dcb_ieee_setapp(dev, &app); in dsa_user_dcbnl_init()
2484 err = dcb_ieee_setapp(dev, &app); in dsa_user_dcbnl_init()
2535 static void dsa_user_get_stats64(struct net_device *dev, in dsa_user_get_stats64() argument
2538 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_get_stats64()
2544 dev_get_tstats64(dev, s); in dsa_user_get_stats64()
2550 struct dsa_port *dp = dsa_user_to_port(ctx->dev); in dsa_user_fill_forward_path()
2554 path->dev = ctx->dev; in dsa_user_fill_forward_path()
2558 ctx->dev = conduit; in dsa_user_fill_forward_path()
2563 static int dsa_user_hwtstamp_get(struct net_device *dev, in dsa_user_hwtstamp_get() argument
2566 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_hwtstamp_get()
2575 static int dsa_user_hwtstamp_set(struct net_device *dev, in dsa_user_hwtstamp_set() argument
2579 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_hwtstamp_set()
2664 dp->pl_config.dev = &user_dev->dev; in dsa_user_phy_setup()
2804 SET_NETDEV_DEV(user_dev, port->ds->dev); in dsa_user_create()
2806 user_dev->dev.of_node = port->dn; in dsa_user_create()
2835 dev_warn(ds->dev, "nonfatal error %d setting MTU to %d on port %d\n", in dsa_user_create()
2899 int dsa_user_change_conduit(struct net_device *dev, struct net_device *conduit, in dsa_user_change_conduit() argument
2902 struct net_device *old_conduit = dsa_user_to_conduit(dev); in dsa_user_change_conduit()
2903 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_change_conduit()
2937 if (dev->flags & IFF_UP) { in dsa_user_change_conduit()
2943 netdev_upper_dev_unlink(old_conduit, dev); in dsa_user_change_conduit()
2945 err = netdev_upper_dev_link(conduit, dev, extack); in dsa_user_change_conduit()
2954 err = dsa_user_change_mtu(dev, dev->mtu); in dsa_user_change_conduit()
2956 netdev_warn(dev, in dsa_user_change_conduit()
2964 netdev_upper_dev_unlink(conduit, dev); in dsa_user_change_conduit()
2966 netdev_upper_dev_link(old_conduit, dev, NULL); in dsa_user_change_conduit()
2970 bool dsa_user_dev_check(const struct net_device *dev) in dsa_user_dev_check() argument
2972 return dev->netdev_ops == &dsa_user_netdev_ops; in dsa_user_dev_check()
2976 static int dsa_user_changeupper(struct net_device *dev, in dsa_user_changeupper() argument
2983 if (!dsa_user_dev_check(dev)) in dsa_user_changeupper()
2986 dp = dsa_user_to_port(dev); in dsa_user_changeupper()
3036 static int dsa_user_prechangeupper(struct net_device *dev, in dsa_user_prechangeupper() argument
3041 if (!dsa_user_dev_check(dev)) in dsa_user_prechangeupper()
3044 dp = dsa_user_to_port(dev); in dsa_user_prechangeupper()
3058 dsa_user_lag_changeupper(struct net_device *dev, in dsa_user_lag_changeupper() argument
3066 if (!netif_is_lag_master(dev)) in dsa_user_lag_changeupper()
3069 netdev_for_each_lower_dev(dev, lower, iter) { in dsa_user_lag_changeupper()
3090 dsa_user_lag_prechangeupper(struct net_device *dev, in dsa_user_lag_prechangeupper() argument
3098 if (!netif_is_lag_master(dev)) in dsa_user_lag_prechangeupper()
3101 netdev_for_each_lower_dev(dev, lower, iter) { in dsa_user_lag_prechangeupper()
3119 dsa_prevent_bridging_8021q_upper(struct net_device *dev, in dsa_prevent_bridging_8021q_upper() argument
3128 if (!is_vlan_dev(dev)) in dsa_prevent_bridging_8021q_upper()
3131 user = vlan_dev_real_dev(dev); in dsa_prevent_bridging_8021q_upper()
3152 dsa_user_check_8021q_upper(struct net_device *dev, in dsa_user_check_8021q_upper() argument
3155 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_check_8021q_upper()
3183 dsa_user_prechangeupper_sanity_check(struct net_device *dev, in dsa_user_prechangeupper_sanity_check() argument
3190 if (!dsa_user_dev_check(dev)) in dsa_user_prechangeupper_sanity_check()
3191 return dsa_prevent_bridging_8021q_upper(dev, info); in dsa_user_prechangeupper_sanity_check()
3193 dp = dsa_user_to_port(dev); in dsa_user_prechangeupper_sanity_check()
3203 return dsa_user_check_8021q_upper(dev, info); in dsa_user_prechangeupper_sanity_check()
3276 dsa_lag_conduit_prechangelower_sanity_check(struct net_device *dev, in dsa_lag_conduit_prechangelower_sanity_check() argument
3290 if (!netdev_uses_dsa(dev)) { in dsa_lag_conduit_prechangelower_sanity_check()
3297 if (!dsa_port_tree_same(dev->dsa_ptr, lower->dsa_ptr)) { in dsa_lag_conduit_prechangelower_sanity_check()
3454 static int dsa_conduit_changeupper(struct net_device *dev, in dsa_conduit_changeupper() argument
3460 if (!netdev_uses_dsa(dev)) in dsa_conduit_changeupper()
3467 err = dsa_conduit_lag_join(dev, info->upper_dev, in dsa_conduit_changeupper()
3471 dsa_conduit_lag_leave(dev, info->upper_dev); in dsa_conduit_changeupper()
3482 struct net_device *dev = netdev_notifier_info_to_dev(ptr); in dsa_user_netdevice_event() local
3489 err = dsa_user_prechangeupper_sanity_check(dev, info); in dsa_user_netdevice_event()
3493 err = dsa_conduit_prechangeupper_sanity_check(dev, info); in dsa_user_netdevice_event()
3497 err = dsa_lag_conduit_prechangelower_sanity_check(dev, info); in dsa_user_netdevice_event()
3501 err = dsa_bridge_prechangelower_sanity_check(dev, info); in dsa_user_netdevice_event()
3505 err = dsa_user_prechangeupper(dev, ptr); in dsa_user_netdevice_event()
3509 err = dsa_user_lag_prechangeupper(dev, ptr); in dsa_user_netdevice_event()
3518 err = dsa_user_changeupper(dev, ptr); in dsa_user_netdevice_event()
3522 err = dsa_user_lag_changeupper(dev, ptr); in dsa_user_netdevice_event()
3526 err = dsa_conduit_changeupper(dev, ptr); in dsa_user_netdevice_event()
3537 if (dsa_user_dev_check(dev)) { in dsa_user_netdevice_event()
3538 dp = dsa_user_to_port(dev); in dsa_user_netdevice_event()
3546 if (netdev_uses_dsa(dev)) { in dsa_user_netdevice_event()
3547 dp = dev->dsa_ptr; in dsa_user_netdevice_event()
3560 if (netdev_uses_dsa(dev)) { in dsa_user_netdevice_event()
3561 struct dsa_port *cpu_dp = dev->dsa_ptr; in dsa_user_netdevice_event()
3565 dsa_tree_conduit_oper_state_change(dst, dev, in dsa_user_netdevice_event()
3566 netif_oper_up(dev)); in dsa_user_netdevice_event()
3576 dsa_tree_conduit_admin_state_change(dst, dev, in dsa_user_netdevice_event()
3577 !qdisc_tx_is_noop(dev)); in dsa_user_netdevice_event()
3589 if (!netdev_uses_dsa(dev)) in dsa_user_netdevice_event()
3592 cpu_dp = dev->dsa_ptr; in dsa_user_netdevice_event()
3595 dsa_tree_conduit_admin_state_change(dst, dev, false); in dsa_user_netdevice_event()
3635 struct net_device *dev = switchdev_work->dev; in dsa_user_switchdev_event_work() local
3641 dp = dsa_user_to_port(dev); in dsa_user_switchdev_event_work()
3653 dev_err(ds->dev, in dsa_user_switchdev_event_work()
3669 dev_err(ds->dev, in dsa_user_switchdev_event_work()
3680 static bool dsa_foreign_dev_check(const struct net_device *dev, in dsa_foreign_dev_check() argument
3683 const struct dsa_port *dp = dsa_user_to_port(dev); in dsa_foreign_dev_check()
3696 static int dsa_user_fdb_event(struct net_device *dev, in dsa_user_fdb_event() argument
3702 struct dsa_port *dp = dsa_user_to_port(dev); in dsa_user_fdb_event()
3727 if (dsa_foreign_dev_check(dev, orig_dev)) in dsa_user_fdb_event()
3746 netdev_dbg(dev, "%s FDB entry towards %s, addr %pM vid %d%s\n", in dsa_user_fdb_event()
3753 switchdev_work->dev = dev; in dsa_user_fdb_event()
3769 struct net_device *dev = switchdev_notifier_info_to_dev(ptr); in dsa_user_switchdev_event() local
3774 err = switchdev_handle_port_attr_set(dev, ptr, in dsa_user_switchdev_event()
3780 err = switchdev_handle_fdb_event_to_device(dev, event, ptr, in dsa_user_switchdev_event()
3795 struct net_device *dev = switchdev_notifier_info_to_dev(ptr); in dsa_user_switchdev_blocking_event() local
3800 err = switchdev_handle_port_obj_add_foreign(dev, ptr, in dsa_user_switchdev_blocking_event()
3806 err = switchdev_handle_port_obj_del_foreign(dev, ptr, in dsa_user_switchdev_blocking_event()
3812 err = switchdev_handle_port_attr_set(dev, ptr, in dsa_user_switchdev_blocking_event()