bnx2x: Invalidate fastpath HSI version for VFs
authorManish Chopra <manishc@marvell.com>
Tue, 25 Jan 2022 18:57:49 +0000 (10:57 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 29 Jan 2022 09:26:11 +0000 (10:26 +0100)
commit 802d4d207e75d7208ff75adb712b556c1e91cf1c upstream

Commit 0a6890b9b4df ("bnx2x: Utilize FW 7.13.15.0.")
added validation for fastpath HSI versions for different
client init which was not meant for SR-IOV VF clients, which
resulted in firmware asserts when running VF clients with
different fastpath HSI version.

This patch along with the new firmware support in patch #1
fixes this behavior in order to not validate fastpath HSI
version for the VFs.

Fixes: 0a6890b9b4df ("bnx2x: Utilize FW 7.13.15.0.")
Signed-off-by: Manish Chopra <manishc@marvell.com>
Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Signed-off-by: Alok Prasad <palok@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c

index 03eb017..08437ea 100644 (file)
@@ -758,9 +758,18 @@ static void bnx2x_vf_igu_reset(struct bnx2x *bp, struct bnx2x_virtf *vf)
 
 void bnx2x_vf_enable_access(struct bnx2x *bp, u8 abs_vfid)
 {
+       u16 abs_fid;
+
+       abs_fid = FW_VF_HANDLE(abs_vfid);
+
        /* set the VF-PF association in the FW */
-       storm_memset_vf_to_pf(bp, FW_VF_HANDLE(abs_vfid), BP_FUNC(bp));
-       storm_memset_func_en(bp, FW_VF_HANDLE(abs_vfid), 1);
+       storm_memset_vf_to_pf(bp, abs_fid, BP_FUNC(bp));
+       storm_memset_func_en(bp, abs_fid, 1);
+
+       /* Invalidate fp_hsi version for vfs */
+       if (bp->fw_cap & FW_CAP_INVALIDATE_VF_FP_HSI)
+               REG_WR8(bp, BAR_XSTRORM_INTMEM +
+                           XSTORM_ETH_FUNCTION_INFO_FP_HSI_VALID_E2_OFFSET(abs_fid), 0);
 
        /* clear vf errors*/
        bnx2x_vf_semi_clear_err(bp, abs_vfid);