]> git.itanic.dy.fi Git - linux-stable/commitdiff
i40e: Refactor tc mqprio checks
authorPrzemyslaw Patynowski <przemyslawx.patynowski@intel.com>
Wed, 8 Jun 2022 11:52:48 +0000 (13:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 09:30:07 +0000 (11:30 +0200)
[ Upstream commit 2313e69c84c024a85d017a60ae925085de47530a ]

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: 45bb006d3c92 ("i40e: Fix ADQ rate limiting for PF")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
drivers/net/ethernet/intel/i40e/i40e_main.c

index 210f09118edea69f7a1f008aa456be009d2a7be6..0f19c237cb587fedbd92f2b13b26be462f8e2267 100644 (file)
@@ -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_ */
index 669ae53f4c728e9eb98c5e8386b82a9b67d60062..8e770c5e181ea5fcbd6df5ae5a3b7b59909db7b7 100644 (file)
@@ -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 */
index 536f9198bd47a1690ffa7b0266b3870a20fce1be..f373072dd3b3020533cff4e4c317a0b6538aa555 100644 (file)
@@ -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 @@ 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 */
@@ -8077,7 +8077,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];
 
@@ -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) &&