X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Focteontx2%2Fotx2_flow.c;h=bdbf123a90d74da6ec4851f318c40adcb1eb893b;hb=400d985eb586aae5ef009431cd251bd3d5c42ce2;hp=3ddecfb237782f12e47b2f022c42c009092ade74;hpb=4d9f5b8adc0275e64134d6dc6a19d7281f472737;p=dpdk.git diff --git a/drivers/net/octeontx2/otx2_flow.c b/drivers/net/octeontx2/otx2_flow.c index 3ddecfb237..bdbf123a90 100644 --- a/drivers/net/octeontx2/otx2_flow.c +++ b/drivers/net/octeontx2/otx2_flow.c @@ -528,8 +528,10 @@ otx2_flow_destroy(struct rte_eth_dev *dev, return -EINVAL; /* Clear mark offload flag if there are no more mark actions */ - if (rte_atomic32_sub_return(&npc->mark_actions, 1) == 0) + if (rte_atomic32_sub_return(&npc->mark_actions, 1) == 0) { hw->rx_offload_flags &= ~NIX_RX_OFFLOAD_MARK_UPDATE_F; + otx2_eth_set_rx_function(dev); + } } rc = flow_free_rss_action(dev, flow); @@ -682,6 +684,7 @@ flow_update_kex_info(struct npc_xtract_info *xtract_info, xtract_info->hdr_off = (val >> HDR_OFF_SHIFT) & 0xff; xtract_info->key_off = val & 0x3f; xtract_info->enable = ((val >> 7) & 0x1); + xtract_info->flags_enable = ((val >> 6) & 0x1); } static void @@ -841,7 +844,7 @@ otx2_flow_init(struct otx2_eth_dev *hw) } npc->free_entries = rte_zmalloc(NULL, npc->flow_max_priority - * sizeof(struct rte_bitmap), + * sizeof(struct rte_bitmap *), 0); if (npc->free_entries == NULL) { otx2_err("free_entries alloc failed"); @@ -850,7 +853,7 @@ otx2_flow_init(struct otx2_eth_dev *hw) } npc->free_entries_rev = rte_zmalloc(NULL, npc->flow_max_priority - * sizeof(struct rte_bitmap), + * sizeof(struct rte_bitmap *), 0); if (npc->free_entries_rev == NULL) { otx2_err("free_entries_rev alloc failed"); @@ -859,7 +862,7 @@ otx2_flow_init(struct otx2_eth_dev *hw) } npc->live_entries = rte_zmalloc(NULL, npc->flow_max_priority - * sizeof(struct rte_bitmap), + * sizeof(struct rte_bitmap *), 0); if (npc->live_entries == NULL) { otx2_err("live_entries alloc failed"); @@ -868,7 +871,7 @@ otx2_flow_init(struct otx2_eth_dev *hw) } npc->live_entries_rev = rte_zmalloc(NULL, npc->flow_max_priority - * sizeof(struct rte_bitmap), + * sizeof(struct rte_bitmap *), 0); if (npc->live_entries_rev == NULL) { otx2_err("live_entries_rev alloc failed"); @@ -945,8 +948,6 @@ err: rte_free(npc->flow_entry_info); if (npc_mem) rte_free(npc_mem); - if (nix_mem) - rte_free(nix_mem); return rc; }