[PATCH 054/109] drm/amd/ras: Add null check to prevent null pointer exception
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: YiPeng Chai <[email protected]> Add null check to prevent null pointer exception. Signed-off-by: YiPeng Chai <[email protected]> Reviewed-by: Hawking Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- .../gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c index c08e573206bd2..128a9bc1f2f09 100644 --- a/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c +++ b/drivers/gpu/drm/amd/ras/ras_mgr/amdgpu_ras_mgr.c @@ -284,6 +284,9 @@ static int amdgpu_ras_mgr_sw_init(struct amdgpu_ip_block *ip_block) struct amdgpu_ras_mgr *ras_mgr; int ret = 0; + if (!con) + return 0; + /* Disabled by default */ con->uniras_enabled = false; @@ -347,11 +350,12 @@ static int amdgpu_ras_mgr_sw_fini(struct amdgpu_ip_block *ip_block) { struct amdgpu_device *adev = ip_block->adev; struct amdgpu_ras *con = amdgpu_ras_get_context(adev); - struct amdgpu_ras_mgr *ras_mgr = (struct amdgpu_ras_mgr *)con->ras_mgr; + struct amdgpu_ras_mgr *ras_mgr; - if (!con->uniras_enabled) + if (!con || !con->uniras_enabled) return 0; + ras_mgr = amdgpu_ras_mgr_get_context(adev); if (!ras_mgr) return 0; @@ -374,12 +378,13 @@ static int amdgpu_ras_mgr_hw_init(struct amdgpu_ip_block *ip_block) { struct amdgpu_device *adev = ip_block->adev; struct amdgpu_ras *con = amdgpu_ras_get_context(adev); - struct amdgpu_ras_mgr *ras_mgr = amdgpu_ras_mgr_get_context(adev); + struct amdgpu_ras_mgr *ras_mgr; int ret; - if (!con->uniras_enabled) + if (!con || !con->uniras_enabled) return 0; + ras_mgr = amdgpu_ras_mgr_get_context(adev); if (!ras_mgr || !ras_mgr->ras_core) return -EINVAL; @@ -407,11 +412,12 @@ static int amdgpu_ras_mgr_hw_fini(struct amdgpu_ip_block *ip_block) { struct amdgpu_device *adev = ip_block->adev; struct amdgpu_ras *con = amdgpu_ras_get_context(adev); - struct amdgpu_ras_mgr *ras_mgr = amdgpu_ras_mgr_get_context(adev); + struct amdgpu_ras_mgr *ras_mgr; - if (!con->uniras_enabled) + if (!con || !con->uniras_enabled) return 0; + ras_mgr = amdgpu_ras_mgr_get_context(adev); if (!ras_mgr || !ras_mgr->ras_core) return -EINVAL; @@ -748,7 +754,7 @@ int amdgpu_ras_mgr_early_init_service(struct amdgpu_device *adev) struct amdgpu_ras_mgr *ras_mgr; int ret; - if (!con->uniras_enabled) + if (!con || !con->uniras_enabled) return 0; ras_mgr = amdgpu_ras_mgr_get_context(adev); -- 2.55.0