From: Srujana Challa <scha...@marvell.com>

Channel(rx_chan_base) is not available in the kernel at
the time of nix probe. Hence, move the mac address set
call from nix_device_init() to nix_device_configure().
This fixes the issue on cn10kb, where traffic was not
getting received when promisc is disabled.

Signed-off-by: Srujana Challa <scha...@marvell.com>
---
 drivers/net/cnxk/cnxk_ethdev.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c
index bd161ad375..3b2ad5ff7d 100644
--- a/drivers/net/cnxk/cnxk_ethdev.c
+++ b/drivers/net/cnxk/cnxk_ethdev.c
@@ -1301,6 +1301,15 @@ cnxk_nix_configure(struct rte_eth_dev *eth_dev)
                goto fail_configure;
        }
 
+       if (!roc_nix_is_vf_or_sdp(nix)) {
+               /* Sync same MAC address to CGX/RPM table */
+               rc = roc_nix_mac_addr_set(nix, dev->mac_addr);
+               if (rc) {
+                       plt_err("Failed to set mac addr, rc=%d", rc);
+                       goto fail_configure;
+               }
+       }
+
        /* Check if ptp is enable in PF owning this VF*/
        if (!roc_nix_is_pf(nix) && (!roc_nix_is_sdp(nix)))
                dev->ptp_en = roc_nix_ptp_is_enable(nix);
@@ -1941,15 +1950,6 @@ cnxk_eth_dev_init(struct rte_eth_dev *eth_dev)
        /* Update the mac address */
        memcpy(eth_dev->data->mac_addrs, dev->mac_addr, RTE_ETHER_ADDR_LEN);
 
-       if (!roc_nix_is_vf_or_sdp(nix)) {
-               /* Sync same MAC address to CGX/RPM table */
-               rc = roc_nix_mac_addr_set(nix, dev->mac_addr);
-               if (rc) {
-                       plt_err("Failed to set mac addr, rc=%d", rc);
-                       goto free_mac_addrs;
-               }
-       }
-
        /* Union of all capabilities supported by CNXK.
         * Platform specific capabilities will be
         * updated later.
-- 
2.25.1

Reply via email to