Skip to content

Commit

Permalink
i40e: Refactor tc mqprio checks
Browse files Browse the repository at this point in the history
Refactor bitwise checks for whether TC MQPRIO is enabled
into one single method for improved readability.

Signed-off-by: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
Tested-by: Bharathi Sreenivas <bharathi.sreenivas@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
  • Loading branch information
Przemyslaw Patynowski authored and Tony Nguyen committed Jul 22, 2022
1 parent 949d6b4 commit 2313e69
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 11 deletions.
14 changes: 14 additions & 0 deletions drivers/net/ethernet/intel/i40e/i40e.h
Original file line number Diff line number Diff line change
Expand Up @@ -1292,4 +1292,18 @@ int i40e_add_del_cloud_filter(struct i40e_vsi *vsi,
int i40e_add_del_cloud_filter_big_buf(struct i40e_vsi *vsi,
struct i40e_cloud_filter *filter,
bool add);

/**
* i40e_is_tc_mqprio_enabled - check if TC MQPRIO is enabled on PF
* @pf: pointer to a pf.
*
* Check and return value of flag I40E_FLAG_TC_MQPRIO.
*
* Return: I40E_FLAG_TC_MQPRIO set state.
**/
static inline u32 i40e_is_tc_mqprio_enabled(struct i40e_pf *pf)
{
return pf->flags & I40E_FLAG_TC_MQPRIO;
}

#endif /* _I40E_H_ */
2 changes: 1 addition & 1 deletion drivers/net/ethernet/intel/i40e/i40e_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -5021,7 +5021,7 @@ static int i40e_set_channels(struct net_device *dev,
/* We do not support setting channels via ethtool when TCs are
* configured through mqprio
*/
if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
return -EINVAL;

/* verify they are not requesting separate vectors */
Expand Down
20 changes: 10 additions & 10 deletions drivers/net/ethernet/intel/i40e/i40e_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -5456,7 +5456,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
u8 num_tc = 0;
struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config;

if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
return pf->vsi[pf->lan_vsi]->mqprio_qopt.qopt.num_tc;

/* If neither MQPRIO nor DCB is enabled, then always use single TC */
Expand Down Expand Up @@ -5488,7 +5488,7 @@ static u8 i40e_pf_get_num_tc(struct i40e_pf *pf)
**/
static u8 i40e_pf_get_tc_map(struct i40e_pf *pf)
{
if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
return i40e_mqprio_get_enabled_tc(pf);

/* If neither MQPRIO nor DCB is enabled for this PF then just return
Expand Down Expand Up @@ -5585,7 +5585,7 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc,
int i;

/* There is no need to reset BW when mqprio mode is on. */
if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
return 0;
if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) {
ret = i40e_set_bw_limit(vsi, vsi->seid, 0);
Expand Down Expand Up @@ -5657,7 +5657,7 @@ static void i40e_vsi_config_netdev_tc(struct i40e_vsi *vsi, u8 enabled_tc)
vsi->tc_config.tc_info[i].qoffset);
}

if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
return;

/* Assign UP2TC map for the VSI */
Expand Down Expand Up @@ -5818,7 +5818,7 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc)
ctxt.vf_num = 0;
ctxt.uplink_seid = vsi->uplink_seid;
ctxt.info = vsi->info;
if (vsi->back->flags & I40E_FLAG_TC_MQPRIO) {
if (i40e_is_tc_mqprio_enabled(pf)) {
ret = i40e_vsi_setup_queue_map_mqprio(vsi, &ctxt, enabled_tc);
if (ret)
goto out;
Expand Down Expand Up @@ -6542,7 +6542,7 @@ int i40e_create_queue_channel(struct i40e_vsi *vsi,
pf->flags |= I40E_FLAG_VEB_MODE_ENABLED;

if (vsi->type == I40E_VSI_MAIN) {
if (pf->flags & I40E_FLAG_TC_MQPRIO)
if (i40e_is_tc_mqprio_enabled(pf))
i40e_do_reset(pf, I40E_PF_RESET_FLAG, true);
else
i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG);
Expand Down Expand Up @@ -7936,7 +7936,7 @@ static void *i40e_fwd_add(struct net_device *netdev, struct net_device *vdev)
netdev_info(netdev, "Macvlans are not supported when DCB is enabled\n");
return ERR_PTR(-EINVAL);
}
if ((pf->flags & I40E_FLAG_TC_MQPRIO)) {
if (i40e_is_tc_mqprio_enabled(pf)) {
netdev_info(netdev, "Macvlans are not supported when HW TC offload is on\n");
return ERR_PTR(-EINVAL);
}
Expand Down Expand Up @@ -8189,7 +8189,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data)
/* Quiesce VSI queues */
i40e_quiesce_vsi(vsi);

if (!hw && !(pf->flags & I40E_FLAG_TC_MQPRIO))
if (!hw && !i40e_is_tc_mqprio_enabled(pf))
i40e_remove_queue_channels(vsi);

/* Configure VSI for enabled TCs */
Expand All @@ -8213,7 +8213,7 @@ static int i40e_setup_tc(struct net_device *netdev, void *type_data)
"Setup channel (id:%u) utilizing num_queues %d\n",
vsi->seid, vsi->tc_config.tc_info[0].qcount);

if (pf->flags & I40E_FLAG_TC_MQPRIO) {
if (i40e_is_tc_mqprio_enabled(pf)) {
if (vsi->mqprio_qopt.max_rate[0]) {
u64 max_tx_rate = vsi->mqprio_qopt.max_rate[0];

Expand Down Expand Up @@ -10867,7 +10867,7 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired)
* unless I40E_FLAG_TC_MQPRIO was enabled or DCB
* is not supported with new link speed
*/
if (pf->flags & I40E_FLAG_TC_MQPRIO) {
if (i40e_is_tc_mqprio_enabled(pf)) {
i40e_aq_set_dcb_parameters(hw, false, NULL);
} else {
if (I40E_IS_X710TL_DEVICE(hw->device_id) &&
Expand Down

0 comments on commit 2313e69

Please sign in to comment.