Lines Matching full:vport

284 		/* As IDPF_MIN_Q_VEC per default vport is put aside in the  in idpf_req_rel_vector_indexes()
377 * vport in idpf_intr_req()
411 * @vconfig: Vport config structure
435 * @vport_config: Vport config structure
458 * @vport: Main vport structure
466 static int idpf_del_mac_filter(struct idpf_vport *vport, in idpf_del_mac_filter() argument
489 err = idpf_add_del_mac_filters(vport, np, false, async); in idpf_del_mac_filter()
499 * @vport_config: Vport config structure
537 * @vport: Main vport structure
545 static int idpf_add_mac_filter(struct idpf_vport *vport, in idpf_add_mac_filter() argument
558 err = idpf_add_del_mac_filters(vport, np, true, async); in idpf_add_mac_filter()
565 * @vport: main vport struct
569 static void idpf_del_all_mac_filters(struct idpf_vport *vport) in idpf_del_all_mac_filters() argument
574 vport_config = vport->adapter->vport_config[vport->idx]; in idpf_del_all_mac_filters()
588 * @vport: main vport struct
593 static void idpf_restore_mac_filters(struct idpf_vport *vport) in idpf_restore_mac_filters() argument
598 vport_config = vport->adapter->vport_config[vport->idx]; in idpf_restore_mac_filters()
606 idpf_add_del_mac_filters(vport, netdev_priv(vport->netdev), in idpf_restore_mac_filters()
612 * @vport: main vport struct
617 static void idpf_remove_mac_filters(struct idpf_vport *vport) in idpf_remove_mac_filters() argument
622 vport_config = vport->adapter->vport_config[vport->idx]; in idpf_remove_mac_filters()
630 idpf_add_del_mac_filters(vport, netdev_priv(vport->netdev), in idpf_remove_mac_filters()
635 * idpf_deinit_mac_addr - deinitialize mac address for vport
636 * @vport: main vport structure
638 static void idpf_deinit_mac_addr(struct idpf_vport *vport) in idpf_deinit_mac_addr() argument
643 vport_config = vport->adapter->vport_config[vport->idx]; in idpf_deinit_mac_addr()
647 f = idpf_find_mac_filter(vport_config, vport->default_mac_addr); in idpf_deinit_mac_addr()
657 * idpf_init_mac_addr - initialize mac address for vport
658 * @vport: main vport structure
659 * @netdev: pointer to netdev struct associated with this vport
661 static int idpf_init_mac_addr(struct idpf_vport *vport, in idpf_init_mac_addr() argument
665 struct idpf_adapter *adapter = vport->adapter; in idpf_init_mac_addr()
668 if (is_valid_ether_addr(vport->default_mac_addr)) { in idpf_init_mac_addr()
669 eth_hw_addr_set(netdev, vport->default_mac_addr); in idpf_init_mac_addr()
670 ether_addr_copy(netdev->perm_addr, vport->default_mac_addr); in idpf_init_mac_addr()
672 return idpf_add_mac_filter(vport, np, vport->default_mac_addr, in idpf_init_mac_addr()
685 err = idpf_add_mac_filter(vport, np, netdev->dev_addr, false); in idpf_init_mac_addr()
690 vport->default_mac_addr, netdev->dev_addr); in idpf_init_mac_addr()
691 ether_addr_copy(vport->default_mac_addr, netdev->dev_addr); in idpf_init_mac_addr()
698 * @vport: main vport structure
702 static int idpf_cfg_netdev(struct idpf_vport *vport) in idpf_cfg_netdev() argument
704 struct idpf_adapter *adapter = vport->adapter; in idpf_cfg_netdev()
710 u16 idx = vport->idx; in idpf_cfg_netdev()
716 * this vport in idpf_cfg_netdev()
721 np->vport = vport; in idpf_cfg_netdev()
722 np->vport_idx = vport->idx; in idpf_cfg_netdev()
723 np->vport_id = vport->vport_id; in idpf_cfg_netdev()
724 vport->netdev = netdev; in idpf_cfg_netdev()
726 return idpf_init_mac_addr(vport, netdev); in idpf_cfg_netdev()
735 vport->netdev = netdev; in idpf_cfg_netdev()
737 np->vport = vport; in idpf_cfg_netdev()
739 np->vport_idx = vport->idx; in idpf_cfg_netdev()
740 np->vport_id = vport->vport_id; in idpf_cfg_netdev()
744 err = idpf_init_mac_addr(vport, netdev); in idpf_cfg_netdev()
746 free_netdev(vport->netdev); in idpf_cfg_netdev()
747 vport->netdev = NULL; in idpf_cfg_netdev()
762 netdev->max_mtu = vport->max_mtu; in idpf_cfg_netdev()
791 if (idpf_is_cap_ena(vport->adapter, IDPF_SEG_CAPS, in idpf_cfg_netdev()
802 if (!idpf_is_cap_ena_all(vport->adapter, IDPF_CSUM_CAPS, in idpf_cfg_netdev()
825 /* The vport can be arbitrarily released so we need to also track in idpf_cfg_netdev()
835 * @adapter: adapter in which to look for a free vport slot
851 * @vport: virtual port structure
853 static void idpf_remove_features(struct idpf_vport *vport) in idpf_remove_features() argument
855 struct idpf_adapter *adapter = vport->adapter; in idpf_remove_features()
858 idpf_remove_mac_filters(vport); in idpf_remove_features()
862 * idpf_vport_stop - Disable a vport
863 * @vport: vport to disable
865 static void idpf_vport_stop(struct idpf_vport *vport) in idpf_vport_stop() argument
867 struct idpf_netdev_priv *np = netdev_priv(vport->netdev); in idpf_vport_stop()
872 netif_carrier_off(vport->netdev); in idpf_vport_stop()
873 netif_tx_disable(vport->netdev); in idpf_vport_stop()
875 idpf_send_disable_vport_msg(vport); in idpf_vport_stop()
876 idpf_send_disable_queues_msg(vport); in idpf_vport_stop()
877 idpf_send_map_unmap_queue_vector_msg(vport, false); in idpf_vport_stop()
881 * instead of deleting and reallocating the vport. in idpf_vport_stop()
883 if (test_and_clear_bit(IDPF_VPORT_DEL_QUEUES, vport->flags)) in idpf_vport_stop()
884 idpf_send_delete_queues_msg(vport); in idpf_vport_stop()
886 idpf_remove_features(vport); in idpf_vport_stop()
888 vport->link_up = false; in idpf_vport_stop()
889 idpf_vport_intr_deinit(vport); in idpf_vport_stop()
890 idpf_vport_queues_rel(vport); in idpf_vport_stop()
891 idpf_vport_intr_rel(vport); in idpf_vport_stop()
908 struct idpf_vport *vport; in idpf_stop() local
914 vport = idpf_netdev_to_vport(netdev); in idpf_stop()
916 idpf_vport_stop(vport); in idpf_stop()
925 * @vport: vport for which netdev to be unregistered
927 static void idpf_decfg_netdev(struct idpf_vport *vport) in idpf_decfg_netdev() argument
929 struct idpf_adapter *adapter = vport->adapter; in idpf_decfg_netdev()
930 u16 idx = vport->idx; in idpf_decfg_netdev()
932 kfree(vport->rx_ptype_lkup); in idpf_decfg_netdev()
933 vport->rx_ptype_lkup = NULL; in idpf_decfg_netdev()
937 unregister_netdev(vport->netdev); in idpf_decfg_netdev()
938 free_netdev(vport->netdev); in idpf_decfg_netdev()
940 vport->netdev = NULL; in idpf_decfg_netdev()
946 * idpf_vport_rel - Delete a vport and free its resources
947 * @vport: the vport being removed
949 static void idpf_vport_rel(struct idpf_vport *vport) in idpf_vport_rel() argument
951 struct idpf_adapter *adapter = vport->adapter; in idpf_vport_rel()
956 u16 idx = vport->idx; in idpf_vport_rel()
958 vport_config = adapter->vport_config[vport->idx]; in idpf_vport_rel()
959 idpf_deinit_rss(vport); in idpf_vport_rel()
964 idpf_send_destroy_vport_msg(vport); in idpf_vport_rel()
975 vec_info.num_curr_vecs = vport->num_q_vectors; in idpf_vport_rel()
976 vec_info.default_vport = vport->default_vport; in idpf_vport_rel()
978 idpf_req_rel_vector_indexes(adapter, vport->q_vector_idxs, &vec_info); in idpf_vport_rel()
980 kfree(vport->q_vector_idxs); in idpf_vport_rel()
981 vport->q_vector_idxs = NULL; in idpf_vport_rel()
991 kfree(vport); in idpf_vport_rel()
996 * idpf_vport_dealloc - cleanup and release a given vport
997 * @vport: pointer to idpf vport structure
1001 static void idpf_vport_dealloc(struct idpf_vport *vport) in idpf_vport_dealloc() argument
1003 struct idpf_adapter *adapter = vport->adapter; in idpf_vport_dealloc()
1004 unsigned int i = vport->idx; in idpf_vport_dealloc()
1006 idpf_deinit_mac_addr(vport); in idpf_vport_dealloc()
1007 idpf_vport_stop(vport); in idpf_vport_dealloc()
1010 idpf_decfg_netdev(vport); in idpf_vport_dealloc()
1012 idpf_del_all_mac_filters(vport); in idpf_vport_dealloc()
1017 np->vport = NULL; in idpf_vport_dealloc()
1020 idpf_vport_rel(vport); in idpf_vport_dealloc()
1028 * @vport: virtual port to check the capability for
1032 static bool idpf_is_hsplit_supported(const struct idpf_vport *vport) in idpf_is_hsplit_supported() argument
1034 return idpf_is_queue_model_split(vport->rxq_model) && in idpf_is_hsplit_supported()
1035 idpf_is_cap_ena_all(vport->adapter, IDPF_HSPLIT_CAPS, in idpf_is_hsplit_supported()
1041 * @vport: virtual port to query the state for
1047 u8 idpf_vport_get_hsplit(const struct idpf_vport *vport) in idpf_vport_get_hsplit() argument
1051 if (!idpf_is_hsplit_supported(vport)) in idpf_vport_get_hsplit()
1054 config = &vport->adapter->vport_config[vport->idx]->user_config; in idpf_vport_get_hsplit()
1062 * idpf_vport_set_hsplit - enable or disable header split on a given vport
1063 * @vport: virtual port to configure
1068 bool idpf_vport_set_hsplit(const struct idpf_vport *vport, u8 val) in idpf_vport_set_hsplit() argument
1072 if (!idpf_is_hsplit_supported(vport)) in idpf_vport_set_hsplit()
1075 config = &vport->adapter->vport_config[vport->idx]->user_config; in idpf_vport_set_hsplit()
1092 * idpf_vport_alloc - Allocates the next available struct vport in the adapter
1094 * @max_q: vport max queue info
1096 * returns a pointer to a vport on success, NULL on failure.
1103 struct idpf_vport *vport; in idpf_vport_alloc() local
1109 vport = kzalloc(sizeof(*vport), GFP_KERNEL); in idpf_vport_alloc()
1110 if (!vport) in idpf_vport_alloc()
1111 return vport; in idpf_vport_alloc()
1118 kfree(vport); in idpf_vport_alloc()
1126 vport->idx = idx; in idpf_vport_alloc()
1127 vport->adapter = adapter; in idpf_vport_alloc()
1128 vport->compln_clean_budget = IDPF_TX_COMPLQ_CLEAN_BUDGET; in idpf_vport_alloc()
1129 vport->default_vport = adapter->num_alloc_vports < in idpf_vport_alloc()
1133 vport->q_vector_idxs = kcalloc(num_max_q, sizeof(u16), GFP_KERNEL); in idpf_vport_alloc()
1134 if (!vport->q_vector_idxs) { in idpf_vport_alloc()
1135 kfree(vport); in idpf_vport_alloc()
1139 idpf_vport_init(vport, max_q); in idpf_vport_alloc()
1144 * for as long as the vport exists. in idpf_vport_alloc()
1149 kfree(vport); in idpf_vport_alloc()
1156 /* fill vport slot in the adapter struct */ in idpf_vport_alloc()
1157 adapter->vports[idx] = vport; in idpf_vport_alloc()
1158 adapter->vport_ids[idx] = idpf_get_vport_id(vport); in idpf_vport_alloc()
1164 return vport; in idpf_vport_alloc()
1194 struct idpf_vport *vport = adapter->vports[i]; in idpf_statistics_task() local
1196 if (vport && !test_bit(IDPF_HR_RESET_IN_PROG, adapter->flags)) in idpf_statistics_task()
1197 idpf_send_get_stats_msg(vport); in idpf_statistics_task()
1250 * @vport: virtual port structure
1252 static void idpf_restore_features(struct idpf_vport *vport) in idpf_restore_features() argument
1254 struct idpf_adapter *adapter = vport->adapter; in idpf_restore_features()
1257 idpf_restore_mac_filters(vport); in idpf_restore_features()
1262 * @vport: virtual port structure
1266 static int idpf_set_real_num_queues(struct idpf_vport *vport) in idpf_set_real_num_queues() argument
1270 err = netif_set_real_num_rx_queues(vport->netdev, vport->num_rxq); in idpf_set_real_num_queues()
1274 return netif_set_real_num_tx_queues(vport->netdev, vport->num_txq); in idpf_set_real_num_queues()
1279 * @vport: virtual port structure
1283 static int idpf_up_complete(struct idpf_vport *vport) in idpf_up_complete() argument
1285 struct idpf_netdev_priv *np = netdev_priv(vport->netdev); in idpf_up_complete()
1287 if (vport->link_up && !netif_carrier_ok(vport->netdev)) { in idpf_up_complete()
1288 netif_carrier_on(vport->netdev); in idpf_up_complete()
1289 netif_tx_start_all_queues(vport->netdev); in idpf_up_complete()
1299 * @vport: virtual port struct
1301 static void idpf_rx_init_buf_tail(struct idpf_vport *vport) in idpf_rx_init_buf_tail() argument
1305 for (i = 0; i < vport->num_rxq_grp; i++) { in idpf_rx_init_buf_tail()
1306 struct idpf_rxq_group *grp = &vport->rxq_grps[i]; in idpf_rx_init_buf_tail()
1308 if (idpf_is_queue_model_split(vport->rxq_model)) { in idpf_rx_init_buf_tail()
1309 for (j = 0; j < vport->num_bufqs_per_qgrp; j++) { in idpf_rx_init_buf_tail()
1327 * idpf_vport_open - Bring up a vport
1328 * @vport: vport to bring up
1330 static int idpf_vport_open(struct idpf_vport *vport) in idpf_vport_open() argument
1332 struct idpf_netdev_priv *np = netdev_priv(vport->netdev); in idpf_vport_open()
1333 struct idpf_adapter *adapter = vport->adapter; in idpf_vport_open()
1341 netif_carrier_off(vport->netdev); in idpf_vport_open()
1343 err = idpf_vport_intr_alloc(vport); in idpf_vport_open()
1345 dev_err(&adapter->pdev->dev, "Failed to allocate interrupts for vport %u: %d\n", in idpf_vport_open()
1346 vport->vport_id, err); in idpf_vport_open()
1350 err = idpf_vport_queues_alloc(vport); in idpf_vport_open()
1354 err = idpf_vport_queue_ids_init(vport); in idpf_vport_open()
1356 dev_err(&adapter->pdev->dev, "Failed to initialize queue ids for vport %u: %d\n", in idpf_vport_open()
1357 vport->vport_id, err); in idpf_vport_open()
1361 err = idpf_vport_intr_init(vport); in idpf_vport_open()
1363 dev_err(&adapter->pdev->dev, "Failed to initialize interrupts for vport %u: %d\n", in idpf_vport_open()
1364 vport->vport_id, err); in idpf_vport_open()
1368 err = idpf_rx_bufs_init_all(vport); in idpf_vport_open()
1370 dev_err(&adapter->pdev->dev, "Failed to initialize RX buffers for vport %u: %d\n", in idpf_vport_open()
1371 vport->vport_id, err); in idpf_vport_open()
1375 err = idpf_queue_reg_init(vport); in idpf_vport_open()
1377 dev_err(&adapter->pdev->dev, "Failed to initialize queue registers for vport %u: %d\n", in idpf_vport_open()
1378 vport->vport_id, err); in idpf_vport_open()
1382 idpf_rx_init_buf_tail(vport); in idpf_vport_open()
1383 idpf_vport_intr_ena(vport); in idpf_vport_open()
1385 err = idpf_send_config_queues_msg(vport); in idpf_vport_open()
1387 dev_err(&adapter->pdev->dev, "Failed to configure queues for vport %u, %d\n", in idpf_vport_open()
1388 vport->vport_id, err); in idpf_vport_open()
1392 err = idpf_send_map_unmap_queue_vector_msg(vport, true); in idpf_vport_open()
1394 dev_err(&adapter->pdev->dev, "Failed to map queue vectors for vport %u: %d\n", in idpf_vport_open()
1395 vport->vport_id, err); in idpf_vport_open()
1399 err = idpf_send_enable_queues_msg(vport); in idpf_vport_open()
1401 dev_err(&adapter->pdev->dev, "Failed to enable queues for vport %u: %d\n", in idpf_vport_open()
1402 vport->vport_id, err); in idpf_vport_open()
1406 err = idpf_send_enable_vport_msg(vport); in idpf_vport_open()
1408 dev_err(&adapter->pdev->dev, "Failed to enable vport %u: %d\n", in idpf_vport_open()
1409 vport->vport_id, err); in idpf_vport_open()
1414 idpf_restore_features(vport); in idpf_vport_open()
1416 vport_config = adapter->vport_config[vport->idx]; in idpf_vport_open()
1418 err = idpf_config_rss(vport); in idpf_vport_open()
1420 err = idpf_init_rss(vport); in idpf_vport_open()
1422 dev_err(&adapter->pdev->dev, "Failed to initialize RSS for vport %u: %d\n", in idpf_vport_open()
1423 vport->vport_id, err); in idpf_vport_open()
1427 err = idpf_up_complete(vport); in idpf_vport_open()
1429 dev_err(&adapter->pdev->dev, "Failed to complete interface up for vport %u: %d\n", in idpf_vport_open()
1430 vport->vport_id, err); in idpf_vport_open()
1437 idpf_deinit_rss(vport); in idpf_vport_open()
1439 idpf_send_disable_vport_msg(vport); in idpf_vport_open()
1441 idpf_send_disable_queues_msg(vport); in idpf_vport_open()
1443 idpf_send_map_unmap_queue_vector_msg(vport, false); in idpf_vport_open()
1445 idpf_vport_intr_deinit(vport); in idpf_vport_open()
1447 idpf_vport_queues_rel(vport); in idpf_vport_open()
1449 idpf_vport_intr_rel(vport); in idpf_vport_open()
1470 struct idpf_vport *vport; in idpf_init_task() local
1495 vport = idpf_vport_alloc(adapter, &max_q); in idpf_init_task()
1496 if (!vport) { in idpf_init_task()
1498 dev_err(&pdev->dev, "failed to allocate vport: %d\n", in idpf_init_task()
1504 index = vport->idx; in idpf_init_task()
1507 init_waitqueue_head(&vport->sw_marker_wq); in idpf_init_task()
1513 err = idpf_check_supported_desc_ids(vport); in idpf_init_task()
1519 if (idpf_cfg_netdev(vport)) in idpf_init_task()
1522 err = idpf_send_get_rx_ptype_msg(vport); in idpf_init_task()
1527 np = netdev_priv(vport->netdev); in idpf_init_task()
1530 idpf_vport_open(vport); in idpf_init_task()
1554 dev_err(&pdev->dev, "failed to register netdev for vport %d: %pe\n", in idpf_init_task()
1572 idpf_decfg_netdev(vport); in idpf_init_task()
1574 idpf_vport_rel(vport); in idpf_init_task()
1713 * idpf_set_vport_state - Set the vport state to be after the reset
1841 * @vport: virtual port data struct
1844 * Soft reset only reallocs vport queue resources. Returns 0 on success,
1847 int idpf_initiate_soft_reset(struct idpf_vport *vport, in idpf_initiate_soft_reset() argument
1850 struct idpf_netdev_priv *np = netdev_priv(vport->netdev); in idpf_initiate_soft_reset()
1852 struct idpf_adapter *adapter = vport->adapter; in idpf_initiate_soft_reset()
1861 * Make a clone of the existing vport to mimic its current in idpf_initiate_soft_reset()
1864 * existing vport and copy the configuration to the main vport. If an in idpf_initiate_soft_reset()
1865 * error occurred, the existing vport will be untouched. in idpf_initiate_soft_reset()
1868 new_vport = kzalloc(sizeof(*vport), GFP_KERNEL); in idpf_initiate_soft_reset()
1875 * and should instead always refer to them in vport if they need to. in idpf_initiate_soft_reset()
1877 memcpy(new_vport, vport, offsetof(struct idpf_vport, link_up)); in idpf_initiate_soft_reset()
1900 idpf_send_delete_queues_msg(vport); in idpf_initiate_soft_reset()
1902 set_bit(IDPF_VPORT_DEL_QUEUES, vport->flags); in idpf_initiate_soft_reset()
1903 idpf_vport_stop(vport); in idpf_initiate_soft_reset()
1906 idpf_deinit_rss(vport); in idpf_initiate_soft_reset()
1907 /* We're passing in vport here because we need its wait_queue in idpf_initiate_soft_reset()
1908 * to send a message and it should be getting all the vport in idpf_initiate_soft_reset()
1910 * to add code to add_queues to change the vport config within in idpf_initiate_soft_reset()
1911 * vport itself as it will be wiped with a memcpy later. in idpf_initiate_soft_reset()
1913 err = idpf_send_add_queues_msg(vport, new_vport->num_txq, in idpf_initiate_soft_reset()
1923 memcpy(vport, new_vport, offsetof(struct idpf_vport, link_up)); in idpf_initiate_soft_reset()
1926 idpf_vport_alloc_vec_indexes(vport); in idpf_initiate_soft_reset()
1928 err = idpf_set_real_num_queues(vport); in idpf_initiate_soft_reset()
1933 err = idpf_vport_open(vport); in idpf_initiate_soft_reset()
1940 idpf_send_add_queues_msg(vport, vport->num_txq, vport->num_complq, in idpf_initiate_soft_reset()
1941 vport->num_rxq, vport->num_bufq); in idpf_initiate_soft_reset()
1945 idpf_vport_open(vport); in idpf_initiate_soft_reset()
1970 return idpf_add_mac_filter(np->vport, np, addr, true); in idpf_addr_sync()
1998 idpf_del_mac_filter(np->vport, np, addr, true); in idpf_addr_unsync()
2074 * @vport: the vport being changed
2080 static int idpf_vport_manage_rss_lut(struct idpf_vport *vport) in idpf_vport_manage_rss_lut() argument
2082 bool ena = idpf_is_feature_ena(vport, NETIF_F_RXHASH); in idpf_vport_manage_rss_lut()
2084 u16 idx = vport->idx; in idpf_vport_manage_rss_lut()
2087 rss_data = &vport->adapter->vport_config[idx]->user_config.rss_data; in idpf_vport_manage_rss_lut()
2103 return idpf_config_rss(vport); in idpf_vport_manage_rss_lut()
2116 struct idpf_vport *vport; in idpf_set_features() local
2120 vport = idpf_netdev_to_vport(netdev); in idpf_set_features()
2122 adapter = vport->adapter; in idpf_set_features()
2132 err = idpf_vport_manage_rss_lut(vport); in idpf_set_features()
2139 err = idpf_initiate_soft_reset(vport, IDPF_SR_RSC_CHANGE); in idpf_set_features()
2146 err = idpf_send_ena_dis_loopback_msg(vport); in idpf_set_features()
2169 struct idpf_vport *vport; in idpf_open() local
2173 vport = idpf_netdev_to_vport(netdev); in idpf_open()
2175 err = idpf_set_real_num_queues(vport); in idpf_open()
2179 err = idpf_vport_open(vport); in idpf_open()
2196 struct idpf_vport *vport; in idpf_change_mtu() local
2200 vport = idpf_netdev_to_vport(netdev); in idpf_change_mtu()
2204 err = idpf_initiate_soft_reset(vport, IDPF_SR_MTU_CHANGE); in idpf_change_mtu()
2221 struct idpf_vport *vport = idpf_netdev_to_vport(netdev); in idpf_features_check() local
2222 struct idpf_adapter *adapter = vport->adapter; in idpf_features_check()
2284 struct idpf_vport *vport; in idpf_set_mac() local
2288 vport = idpf_netdev_to_vport(netdev); in idpf_set_mac()
2290 if (!idpf_is_cap_ena(vport->adapter, IDPF_OTHER_CAPS, in idpf_set_mac()
2292 dev_info(&vport->adapter->pdev->dev, "Setting MAC address is not supported\n"); in idpf_set_mac()
2298 dev_info(&vport->adapter->pdev->dev, "Invalid MAC address: %pM\n", in idpf_set_mac()
2307 vport_config = vport->adapter->vport_config[vport->idx]; in idpf_set_mac()
2308 err = idpf_add_mac_filter(vport, np, addr->sa_data, false); in idpf_set_mac()
2314 if (is_valid_ether_addr(vport->default_mac_addr)) in idpf_set_mac()
2315 idpf_del_mac_filter(vport, np, vport->default_mac_addr, false); in idpf_set_mac()
2317 ether_addr_copy(vport->default_mac_addr, addr->sa_data); in idpf_set_mac()