Skip to content

Commit 29385de

Browse files
Ivan Veceraanguy11
authored andcommitted
i40e: Add and use helper to reconfigure TC for given VSI
Add helper i40e_vsi_reconfig_tc(vsi) that configures TC for given VSI using previously stored TC bitmap. Effectively replaces open-coded patterns: enabled_tc = vsi->tc_config.enabled_tc; vsi->tc_config.enabled_tc = 0; i40e_vsi_config_tc(vsi, enabled_tc); Reviewed-by: Michal Schmidt <[email protected]> Tested-by: Pucha Himasekhar Reddy <[email protected]> Signed-off-by: Ivan Vecera <[email protected]> Reviewed-by: Simon Horman <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
1 parent 5509fc9 commit 29385de

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

drivers/net/ethernet/intel/i40e/i40e_main.c

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5917,6 +5917,28 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc)
59175917
return ret;
59185918
}
59195919

5920+
/**
5921+
* i40e_vsi_reconfig_tc - Reconfigure VSI Tx Scheduler for stored TC map
5922+
* @vsi: VSI to be reconfigured
5923+
*
5924+
* This reconfigures a particular VSI for TCs that are mapped to the
5925+
* TC bitmap stored previously for the VSI.
5926+
*
5927+
* Context: It is expected that the VSI queues have been quisced before
5928+
* calling this function.
5929+
*
5930+
* Return: 0 on success, negative value on failure
5931+
**/
5932+
static int i40e_vsi_reconfig_tc(struct i40e_vsi *vsi)
5933+
{
5934+
u8 enabled_tc;
5935+
5936+
enabled_tc = vsi->tc_config.enabled_tc;
5937+
vsi->tc_config.enabled_tc = 0;
5938+
5939+
return i40e_vsi_config_tc(vsi, enabled_tc);
5940+
}
5941+
59205942
/**
59215943
* i40e_get_link_speed - Returns link speed for the interface
59225944
* @vsi: VSI to be configured
@@ -14279,7 +14301,6 @@ static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)
1427914301
struct i40e_vsi *main_vsi;
1428014302
u16 alloc_queue_pairs;
1428114303
struct i40e_pf *pf;
14282-
u8 enabled_tc;
1428314304
int ret;
1428414305

1428514306
if (!vsi)
@@ -14312,10 +14333,8 @@ static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)
1431214333
* layout configurations.
1431314334
*/
1431414335
main_vsi = i40e_pf_get_main_vsi(pf);
14315-
enabled_tc = main_vsi->tc_config.enabled_tc;
14316-
main_vsi->tc_config.enabled_tc = 0;
1431714336
main_vsi->seid = pf->main_vsi_seid;
14318-
i40e_vsi_config_tc(main_vsi, enabled_tc);
14337+
i40e_vsi_reconfig_tc(main_vsi);
1431914338

1432014339
if (vsi->type == I40E_VSI_MAIN)
1432114340
i40e_rm_default_mac_filter(vsi, pf->hw.mac.perm_addr);
@@ -15074,11 +15093,8 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit, bool lock_acqui
1507415093
}
1507515094
} else {
1507615095
/* force a reset of TC and queue layout configurations */
15077-
u8 enabled_tc = main_vsi->tc_config.enabled_tc;
15078-
15079-
main_vsi->tc_config.enabled_tc = 0;
1508015096
main_vsi->seid = pf->main_vsi_seid;
15081-
i40e_vsi_config_tc(main_vsi, enabled_tc);
15097+
i40e_vsi_reconfig_tc(main_vsi);
1508215098
}
1508315099
i40e_vlan_stripping_disable(main_vsi);
1508415100

0 commit comments

Comments
 (0)