This patch fixes issues when the code moves forward with a potential
NULL pointer, without checking.

Signed-off-by: Andrew Martin <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 2 ++
 drivers/gpu/drm/amd/amdkfd/kfd_debug.c           | 6 +++++-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c         | 3 +++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
index 1ef758ac5076..71b7db5de69f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
@@ -104,6 +104,8 @@ static const char *amdkfd_fence_get_driver_name(struct 
dma_fence *f)
 static const char *amdkfd_fence_get_timeline_name(struct dma_fence *f)
 {
        struct amdgpu_amdkfd_fence *fence = to_amdgpu_amdkfd_fence(f);
+       if (!fence)
+               return NULL;
 
        return fence->timeline_name;
 }
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_debug.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_debug.c
index ba99e0f258ae..42fa137bdb2f 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_debug.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_debug.c
@@ -517,7 +517,9 @@ int kfd_dbg_trap_set_flags(struct kfd_process *target, 
uint32_t *flags)
 
        for (i = 0; i < target->n_pdds; i++) {
                struct kfd_topology_device *topo_dev =
-                               
kfd_topology_device_by_id(target->pdds[i]->dev->id);
+                       kfd_topology_device_by_id(target->pdds[i]->dev->id);
+               if (!topo_dev)
+                       continue;
                uint32_t caps = topo_dev->node_props.capability;
 
                if (!(caps & 
HSA_CAP_TRAP_DEBUG_PRECISE_MEMORY_OPERATIONS_SUPPORTED) &&
@@ -1071,6 +1073,8 @@ int kfd_dbg_trap_device_snapshot(struct kfd_process 
*target,
        for (i = 0; i < tmp_num_devices; i++) {
                struct kfd_process_device *pdd = target->pdds[i];
                struct kfd_topology_device *topo_dev = 
kfd_topology_device_by_id(pdd->dev->id);
+               if (!topo_dev)
+                       continue;
 
                device_info.gpu_id = pdd->dev->id;
                device_info.exception_status = pdd->exception_status;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index f5d173f1ca3b..f40d93f82ede 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -1685,6 +1685,9 @@ int kfd_process_device_init_vm(struct kfd_process_device 
*pdd,
        struct kfd_node *dev;
        int ret;
 
+       if (!pdd)
+               return -EINVAL;
+
        if (!drm_file)
                return -EINVAL;
 
-- 
2.43.0

Reply via email to