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

Reply via email to