This is a collection of minor fixes that were found during code review.
Changes are:
- Call ice_hweight8() instead of calculating it ourselves in
  ice_bits_max_set().
- Call ice_test_and_clear_bit() over calling ice_is_bit_set() then
  ice_clear_bit() in ice_rem_vsi_rss_list().
- Remove 'chrs' variable in ice_add_prof_id_flow() as it's not being
  used for anything.
- Return result directly instead of assigning to variable then
  returning the variable in ice_rem_vsig().
- Reduce scope, and don't initialize, 'or_vsig' in
  ice_add_prof_id_flow().
- Return error immediately in ice_add_prof_id_vsig(). Since the memory
  wasn't allocated, there is no need to goto and attempt to free memory.
- Show that values 37-38 are reserved in ice_flow_avf_hdr_field as the
  other reserved values are shown.
- Fix RCT ordering
- Remove initialization of values that aren't needed
- Fix function headers to match function names
- Use offsetof instead of calculating ourselves in ice_pkg_buf_alloc()
- In ice_rem_prof(), do not set status to ICE_SUCCESS as, due to code
  flow, this will always be ICE_SUCCESS.
- Remove unnecessary semicolon in ice_prof_gen_key()
- Remove unnecessary initializations

Signed-off-by: Tony Nguyen <anthony.l.ngu...@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell...@intel.com>
Signed-off-by: Qi Zhang <qi.z.zh...@intel.com>
---
 drivers/net/ice/base/ice_flex_pipe.c | 42 +++++++++++++-----------------------
 drivers/net/ice/base/ice_flow.c      |  7 ++----
 drivers/net/ice/base/ice_flow.h      |  1 +
 3 files changed, 18 insertions(+), 32 deletions(-)

diff --git a/drivers/net/ice/base/ice_flex_pipe.c 
b/drivers/net/ice/base/ice_flex_pipe.c
index 5dd7a0d38..21b7c2efd 100644
--- a/drivers/net/ice/base/ice_flex_pipe.c
+++ b/drivers/net/ice/base/ice_flex_pipe.c
@@ -610,7 +610,7 @@ ice_gen_key_word(u8 val, u8 valid, u8 dont_care, u8 
nvr_mtch, u8 *key,
 static bool ice_bits_max_set(const u8 *mask, u16 size, u16 max)
 {
        u16 count = 0;
-       u16 i, j;
+       u16 i;
 
        /* check each byte */
        for (i = 0; i < size; i++) {
@@ -626,11 +626,9 @@ static bool ice_bits_max_set(const u8 *mask, u16 size, u16 
max)
                        return false;
 
                /* count the bits in this byte, checking threshold */
-               for (j = 0; j < BITS_PER_BYTE; j++) {
-                       count += (mask[i] & (0x1 << j)) ? 1 : 0;
-                       if (count > max)
-                               return false;
-               }
+               count += ice_hweight8(mask[i]);
+               if (count > max)
+                       return false;
        }
 
        return true;
@@ -914,9 +912,8 @@ ice_update_pkg(struct ice_hw *hw, struct ice_buf *bufs, u32 
count)
                return status;
 
        for (i = 0; i < count; i++) {
-               bool last = ((i + 1) == count);
-
                struct ice_buf_hdr *bh = (struct ice_buf_hdr *)(bufs + i);
+               bool last = ((i + 1) == count);
 
                status = ice_aq_update_pkg(hw, bh, LE16_TO_CPU(bh->data_end),
                                           last, &offset, &info, NULL);
@@ -1806,7 +1803,7 @@ static u16 ice_pkg_buf_get_active_sections(struct 
ice_buf_build *bld)
 }
 
 /**
- * ice_pkg_buf_header
+ * ice_pkg_buf
  * @bld: pointer to pkg build (allocated by ice_pkg_buf_alloc())
  *
  * Return a pointer to the buffer's header
@@ -3887,6 +3884,7 @@ ice_vsig_get_ref(struct ice_hw *hw, enum ice_block blk, 
u16 vsig, u16 *refs)
 {
        u16 idx = vsig & ICE_VSIG_IDX_M;
        struct ice_vsig_vsi *ptr;
+
        *refs = 0;
 
        if (!hw->blk[blk].xlt2.vsig_tbl[idx].in_use)
@@ -4090,12 +4088,12 @@ ice_upd_prof_hw(struct ice_hw *hw, enum ice_block blk,
        struct ice_buf_build *b;
        struct ice_chs_chg *tmp;
        enum ice_status status;
-       u16 pkg_sects = 0;
-       u16 sects = 0;
+       u16 pkg_sects;
        u16 xlt1 = 0;
        u16 xlt2 = 0;
        u16 tcam = 0;
        u16 es = 0;
+       u16 sects;
 
        /* count number of sections we need */
        LIST_FOR_EACH_ENTRY(tmp, chgs, ice_chs_chg, list_entry) {
@@ -4194,8 +4192,6 @@ static void ice_update_fd_mask(struct ice_hw *hw, u16 
prof_id, u32 mask_sel)
                  GLQF_FDMASK_SEL(prof_id), mask_sel);
 }
 
-#define ICE_SRC_DST_MAX_COUNT  8
-
 struct ice_fd_src_dst_pair {
        u8 prot_id;
        u8 count;
@@ -4754,9 +4750,7 @@ ice_rem_vsig(struct ice_hw *hw, enum ice_block blk, u16 
vsig,
                } while (vsi_cur);
        }
 
-       status = ice_vsig_free(hw, blk, vsig);
-
-       return status;
+       return ice_vsig_free(hw, blk, vsig);
 }
 
 /**
@@ -4974,8 +4968,8 @@ static enum ice_status
 ice_add_prof_to_lst(struct ice_hw *hw, enum ice_block blk,
                    struct LIST_HEAD_TYPE *lst, u64 hdl)
 {
-       struct ice_vsig_prof *p;
        struct ice_prof_map *map;
+       struct ice_vsig_prof *p;
        u16 i;
 
        map = ice_search_prof_id(hw, blk, hdl);
@@ -5252,7 +5246,7 @@ ice_add_prof_id_vsig(struct ice_hw *hw, enum ice_block 
blk, u16 vsig, u64 hdl,
        /* new VSIG profile structure */
        t = (struct ice_vsig_prof *)ice_malloc(hw, sizeof(*t));
        if (!t)
-               goto err_ice_add_prof_id_vsig;
+               return ICE_ERR_NO_MEMORY;
 
        t->profile_cookie = map->profile_cookie;
        t->prof_id = map->prof_id;
@@ -5371,7 +5365,7 @@ ice_create_prof_id_vsig(struct ice_hw *hw, enum ice_block 
blk, u16 vsi, u64 hdl,
 }
 
 /**
- * ice_create_vsig_from_list - create a new VSIG with a list of profiles
+ * ice_create_vsig_from_lst - create a new VSIG with a list of profiles
  * @hw: pointer to the HW struct
  * @blk: hardware block
  * @vsi: the initial VSI that will be in VSIG
@@ -5498,13 +5492,11 @@ ice_add_prof_id_flow(struct ice_hw *hw, enum ice_block 
blk, u16 vsi, u64 hdl)
        struct ice_vsig_prof *tmp1, *del1;
        struct LIST_HEAD_TYPE union_lst;
        struct ice_chs_chg *tmp, *del;
-       struct LIST_HEAD_TYPE chrs;
        struct LIST_HEAD_TYPE chg;
        enum ice_status status;
-       u16 vsig, or_vsig = 0;
+       u16 vsig;
 
        INIT_LIST_HEAD(&union_lst);
-       INIT_LIST_HEAD(&chrs);
        INIT_LIST_HEAD(&chg);
 
        /* Get profile */
@@ -5516,6 +5508,7 @@ ice_add_prof_id_flow(struct ice_hw *hw, enum ice_block 
blk, u16 vsi, u64 hdl)
        status = ice_vsig_find_vsi(hw, blk, vsi, &vsig);
        if (!status && vsig) {
                bool only_vsi;
+               u16 or_vsig;
                u16 ref;
 
                /* found in vsig */
@@ -5625,11 +5618,6 @@ ice_add_prof_id_flow(struct ice_hw *hw, enum ice_block 
blk, u16 vsi, u64 hdl)
                ice_free(hw, del1);
        }
 
-       LIST_FOR_EACH_ENTRY_SAFE(del1, tmp1, &chrs, ice_vsig_prof, list) {
-               LIST_DEL(&del1->list);
-               ice_free(hw, del1);
-       }
-
        return status;
 }
 
diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c
index d52bce1ce..0838b3bd2 100644
--- a/drivers/net/ice/base/ice_flow.c
+++ b/drivers/net/ice/base/ice_flow.c
@@ -1152,7 +1152,7 @@ ice_flow_add_prof_sync(struct ice_hw *hw, enum ice_block 
blk,
                       struct ice_flow_prof **prof)
 {
        struct ice_flow_prof_params params;
-       enum ice_status status = ICE_SUCCESS;
+       enum ice_status status;
        u8 i;
 
        if (!prof || (acts_cnt && !acts))
@@ -1825,14 +1825,11 @@ void ice_rem_vsi_rss_list(struct ice_hw *hw, u16 
vsi_handle)
        ice_acquire_lock(&hw->rss_locks);
        LIST_FOR_EACH_ENTRY_SAFE(r, tmp, &hw->rss_list_head,
                                 ice_rss_cfg, l_entry) {
-               if (ice_is_bit_set(r->vsis, vsi_handle)) {
-                       ice_clear_bit(vsi_handle, r->vsis);
-
+               if (ice_test_and_clear_bit(vsi_handle, r->vsis))
                        if (!ice_is_any_bit_set(r->vsis, ICE_MAX_VSI)) {
                                LIST_DEL(&r->l_entry);
                                ice_free(hw, r);
                        }
-               }
        }
        ice_release_lock(&hw->rss_locks);
 }
diff --git a/drivers/net/ice/base/ice_flow.h b/drivers/net/ice/base/ice_flow.h
index d7b10ccc3..4c2067f0c 100644
--- a/drivers/net/ice/base/ice_flow.h
+++ b/drivers/net/ice/base/ice_flow.h
@@ -187,6 +187,7 @@ enum ice_flow_avf_hdr_field {
        ICE_AVF_FLOW_FIELD_IPV4_SCTP,
        ICE_AVF_FLOW_FIELD_IPV4_OTHER,
        ICE_AVF_FLOW_FIELD_FRAG_IPV4,
+       /* Values 37-38 are reserved */
        ICE_AVF_FLOW_FIELD_UNICAST_IPV6_UDP     = 39,
        ICE_AVF_FLOW_FIELD_MULTICAST_IPV6_UDP,
        ICE_AVF_FLOW_FIELD_IPV6_UDP,
-- 
2.13.6

Reply via email to