[AMD Official Use Only] Reviewed-by: Emily Deng <Emily.Deng@xxxxxxx> >-----Original Message----- >From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Peng Ju >Zhou >Sent: Monday, June 7, 2021 1:55 PM >To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx >Subject: [PATCH] drm/amdgpu: Fixing "Indirect register access for Navi12 sriov" >for vega10 > >The NV12 and VEGA10 share the same interface W/RREG32_SOC15*, the >callback functions in these macros may not be defined, so NULL pointer must be >checked but not in macro __WREG32_SOC15_RLC__, fixing the lock of NULL >pointer check. > >Signed-off-by: Peng Ju Zhou <PengJu.Zhou@xxxxxxx> >--- > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 ++- > drivers/gpu/drm/amd/amdgpu/soc15_common.h | 4 ++-- > 2 files changed, 4 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c >b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c >index fe5908f708cc..044076ec1d03 100644 >--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c >+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c >@@ -790,7 +790,8 @@ static void gfx_v9_0_rlcg_w(struct amdgpu_device >*adev, u32 offset, u32 v, u32 f static void gfx_v9_0_rlcg_wreg(struct >amdgpu_device *adev, u32 offset, > u32 v, u32 acc_flags, u32 hwip) { >- if (amdgpu_sriov_fullaccess(adev)) { >+ if ((acc_flags & AMDGPU_REGS_RLC) && >+ amdgpu_sriov_fullaccess(adev)) { > gfx_v9_0_rlcg_w(adev, offset, v, acc_flags); > > return; >diff --git a/drivers/gpu/drm/amd/amdgpu/soc15_common.h >b/drivers/gpu/drm/amd/amdgpu/soc15_common.h >index f6cf70e69cce..0eeb5e073be8 100644 >--- a/drivers/gpu/drm/amd/amdgpu/soc15_common.h >+++ b/drivers/gpu/drm/amd/amdgpu/soc15_common.h >@@ -28,12 +28,12 @@ > #define SOC15_REG_OFFSET(ip, inst, reg) (adev- >>reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) > > #define __WREG32_SOC15_RLC__(reg, value, flag, hwip) \ >- ((amdgpu_sriov_runtime(adev) && adev->gfx.rlc.funcs->rlcg_wreg) ? \ >+ ((amdgpu_sriov_vf(adev) && adev->gfx.rlc.funcs && >+adev->gfx.rlc.funcs->rlcg_wreg) ? \ > adev->gfx.rlc.funcs->rlcg_wreg(adev, reg, value, flag, hwip) : \ > WREG32(reg, value)) > > #define __RREG32_SOC15_RLC__(reg, flag, hwip) \ >- ((amdgpu_sriov_runtime(adev) && adev->gfx.rlc.funcs->rlcg_rreg) ? \ >+ ((amdgpu_sriov_vf(adev) && adev->gfx.rlc.funcs && >+adev->gfx.rlc.funcs->rlcg_rreg) ? \ > adev->gfx.rlc.funcs->rlcg_rreg(adev, reg, flag, hwip) : \ > RREG32(reg)) > >-- >2.17.1 > >_______________________________________________ >amd-gfx mailing list >amd-gfx@xxxxxxxxxxxxxxxxxxxxx >https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.fre >edesktop.org%2Fmailman%2Flistinfo%2Famd- >gfx&data=04%7C01%7CEmily.Deng%40amd.com%7C93e8d99e699940575 >6f708d92978d707%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6 >37586421253857337%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMD >AiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=s >vMhuOMA21NlQ%2B9T9lrio5AIcoAPR2uzRuJfDndhr9o%3D&reserved=0 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx