net/ice: fix flow API switch filter
authorWei Zhao <wei.zhao1@intel.com>
Tue, 16 Jul 2019 02:36:38 +0000 (10:36 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 23 Jul 2019 12:31:35 +0000 (14:31 +0200)
When pattern has ETH, it may contain two kinds of lookup
parameters, MAC and ethertype.

So increasing item number for memory malloc in order
to reserve one more memory slot for ETH which may
consume 2 lookup items.

Fixes: 57c4f2693588 ("net/ice: enable switch filter")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_switch_filter.c

index 5424223..b88b4f5 100644 (file)
@@ -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;