]> 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 08:47:18 +0000 (10:47 +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 407fe8f340a069e73f8433defb9b024b5a0b5edb..c5b61bc80f7831c4ee218f68f9ca5317da8c8666 100644 (file)
@@ -1291,4 +1291,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 22a61802a4027ae273a17f842accd6a2595156f6..ed9984f1e1b9f8c17f68f5e40e2d81081e8f707f 100644 (file)
@@ -4931,7 +4931,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 71a8e1698ed48a97342b945a5920410a4f4ebd3f..45c56832c14fd1aa9463881555867ccd7bd004f8 100644 (file)
@@ -5339,7 +5339,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 */
@@ -5371,7 +5371,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
@@ -5468,7 +5468,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);
@@ -5540,7 +5540,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 */
@@ -5701,7 +5701,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;
@@ -6425,7 +6425,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);
@@ -7819,7 +7819,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);
        }
@@ -8072,7 +8072,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 */
@@ -8096,7 +8096,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];
 
@@ -10750,7 +10750,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) &&