net/octeontx2: add device start operation
[dpdk.git] / drivers / net / octeontx2 / otx2_flow.c
index 94bd851..982100d 100644 (file)
@@ -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);
@@ -770,6 +772,7 @@ flow_fetch_kex_cfg(struct otx2_eth_dev *dev)
        struct otx2_npc_flow_info *npc = &dev->npc_flow;
        struct npc_get_kex_cfg_rsp *kex_rsp;
        struct otx2_mbox *mbox = dev->mbox;
+       char mkex_pfl_name[MKEX_NAME_LEN];
        struct otx2_idev_kex_cfg *idev;
        int rc = 0;
 
@@ -791,6 +794,12 @@ flow_fetch_kex_cfg(struct otx2_eth_dev *dev)
                       sizeof(struct npc_get_kex_cfg_rsp));
        }
 
+       otx2_mbox_memcpy(mkex_pfl_name,
+                        idev->kex_cfg.mkex_pfl_name, MKEX_NAME_LEN);
+
+       strlcpy((char *)dev->mkex_pfl_name,
+               mkex_pfl_name, sizeof(dev->mkex_pfl_name));
+
        flow_process_mkex_cfg(npc, &idev->kex_cfg);
 
 done: