i40e: Refactor tc mqprio checks
[ Upstream commit2313e69c84
] 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> Stable-dep-of:45bb006d3c
("i40e: Fix ADQ rate limiting for PF") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
657d9d8ac3
Коммит
39d9de5872
|
@ -1286,4 +1286,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_ */
|
||||
|
|
|
@ -4921,7 +4921,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 */
|
||||
|
|
|
@ -5320,7 +5320,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 */
|
||||
|
@ -5352,7 +5352,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
|
||||
|
@ -5449,7 +5449,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);
|
||||
|
@ -5521,7 +5521,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 */
|
||||
|
@ -5682,7 +5682,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;
|
||||
|
@ -6406,7 +6406,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);
|
||||
|
@ -7800,7 +7800,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);
|
||||
}
|
||||
|
@ -8053,7 +8053,7 @@ config_tc:
|
|||
/* 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 */
|
||||
|
@ -8077,7 +8077,7 @@ config_tc:
|
|||
"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];
|
||||
|
||||
|
@ -10731,7 +10731,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) &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче