When pattern has ETH, maybe it will contain
MAC and ethertype two kinds of lookup parameters,
so add more item number for memory malloc in order
to reserve one more memory slot for ETH which may
consume 2 lookup items.

Fixes: 24dc00c30907 ("net/ice: enable switch filter")
Signed-off-by: wei zhao <wei.zh...@intel.com>
---
 drivers/net/ice/ice_switch_filter.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ice/ice_switch_filter.c 
b/drivers/net/ice/ice_switch_filter.c
index 5424223..b88b4f5 100644
--- a/drivers/net/ice/ice_switch_filter.c
+++ b/drivers/net/ice/ice_switch_filter.c
@@ -435,6 +435,11 @@ ice_create_switch_filter(struct ice_pf *pf,
                        tun_type = ICE_SW_TUN_VXLAN;
                if (item->type == RTE_FLOW_ITEM_TYPE_NVGRE)
                        tun_type = ICE_SW_TUN_NVGRE;
+               /* reserve one more memory slot for ETH which may
+                * consume 2 lookup items.
+                */
+               if (item->type == RTE_FLOW_ITEM_TYPE_ETH)
+                       item_num++;
        }
        rule_info.tun_type = tun_type;
 
-- 
2.7.5

Reply via email to