From: Kalesh AP Date: Tue, 4 Jan 2022 08:38:08 +0000 (+0530) Subject: net/bnxt: fix multicast MAC restore during reset recovery X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=04689bdb65adf1121321dda9052cb4063476a2d3;p=dpdk.git net/bnxt: fix multicast MAC restore during reset recovery During reset recovery, driver is not restoring the multicast mac addresses. Added code to restore them during reset recovery. Fixes: b02f1573cd07 ("net/bnxt: restore MAC filters during reset recovery") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 50ffa30577..bac96001a4 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4261,6 +4261,18 @@ static int bnxt_restore_mac_filters(struct bnxt *bp) return 0; } +static int bnxt_restore_mcast_mac_filters(struct bnxt *bp) +{ + int ret = 0; + + ret = bnxt_dev_set_mc_addr_list_op(bp->eth_dev, bp->mcast_addr_list, + bp->nb_mc_addr); + if (ret) + PMD_DRV_LOG(ERR, "Failed to restore multicast MAC addreeses\n"); + + return ret; +} + static int bnxt_restore_filters(struct bnxt *bp) { struct rte_eth_dev *dev = bp->eth_dev; @@ -4282,7 +4294,13 @@ static int bnxt_restore_filters(struct bnxt *bp) return ret; ret = bnxt_restore_vlan_filters(bp); - /* TODO restore other filters as well */ + if (ret) + return ret; + + ret = bnxt_restore_mcast_mac_filters(bp); + if (ret) + return ret; + return ret; }