From fa8cc81989ee756f18d9b3f99aa35b9fb930c18d Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Tue, 4 Jan 2022 14:08:11 +0530 Subject: [PATCH] net/bnxt: fix restoring VLAN filtering after recovery [ upstream commit 8717548934d89498b9c679221d9a24996034b128 ] During port start, driver calls bnxt_vlan_offload_set_op() to program VLAN Filter/VLAN Strip setting to the HW. This in turns add the vlan filters. This results in a failure when bnxt_restore_filters() invokes bnxt_restore_vlan_filters() during the recovery as the vlans are already programmed. Fix to ignore the error(-EEXIST). Fixes: 151c8240ac6a ("net/bnxt: restore VLAN filters during reset recovery") Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_ethdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 0c00f25f5b..0168481663 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4113,8 +4113,9 @@ static int bnxt_restore_filters(struct bnxt *bp) if (ret) return ret; + /* if vlans are already programmed, this can fail with -EEXIST */ ret = bnxt_restore_vlan_filters(bp); - if (ret) + if (ret && ret != -EEXIST) return ret; ret = bnxt_restore_mcast_mac_filters(bp);