Protocol header count should be changed when tunnel level is larger than 1.

Fixes: 13a7dcddd8ee ("net/iavf: fix taninted scalar")

Signed-off-by: Steve Yang <stevex.y...@intel.com>
---
 drivers/net/iavf/iavf_hash.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
index 71c80d2c75..67b05313eb 100644
--- a/drivers/net/iavf/iavf_hash.c
+++ b/drivers/net/iavf/iavf_hash.c
@@ -1210,7 +1210,7 @@ iavf_refine_proto_hdrs_by_pattern(struct 
virtchnl_proto_hdrs *proto_hdrs,
        struct virtchnl_proto_hdr *hdr2;
        int i, shift_count = 1;
        int tun_lvl = proto_hdrs->tunnel_level;
-       int phdrs_count = proto_hdrs->count;
+       int phdrs_count = 0;
 
        if (!(phint & IAVF_PHINT_GTPU_MSK) && !(phint & IAVF_PHINT_GRE))
                return;
@@ -1219,6 +1219,7 @@ iavf_refine_proto_hdrs_by_pattern(struct 
virtchnl_proto_hdrs *proto_hdrs,
                if (phint & IAVF_PHINT_LAYERS_MSK)
                        shift_count = 2;
 
+               phdrs_count = proto_hdrs->count;
                /* shift headers layer */
                for (i = phdrs_count - 1 + shift_count;
                     i > shift_count - 1; i--) {
-- 
2.25.1

Reply via email to