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