diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3654-drm-amdgpu-Handle-job-is-NULL-use-case-in-amdgpu_dev.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3654-drm-amdgpu-Handle-job-is-NULL-use-case-in-amdgpu_dev.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3654-drm-amdgpu-Handle-job-is-NULL-use-case-in-amdgpu_dev.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3654-drm-amdgpu-Handle-job-is-NULL-use-case-in-amdgpu_dev.patch new file mode 100644 index 00000000..cc5c8264 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3654-drm-amdgpu-Handle-job-is-NULL-use-case-in-amdgpu_dev.patch @@ -0,0 +1,61 @@ +From 862335880122456c3a9e26072eead13eb60fba3e Mon Sep 17 00:00:00 2001 +From: Andrey Grodzovsky <andrey.grodzovsky@amd.com> +Date: Tue, 27 Aug 2019 12:14:47 -0400 +Subject: [PATCH 3654/4256] drm/amdgpu: Handle job is NULL use case in + amdgpu_device_gpu_recover +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This should be checked at all places job is accessed. + +Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 20db92980a49..f10748306462 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -3779,14 +3779,14 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev, + + if (hive && !mutex_trylock(&hive->reset_lock)) { + DRM_INFO("Bailing on TDR for s_job:%llx, hive: %llx as another already in progress", +- job->base.id, hive->hive_id); ++ job ? job->base.id : -1, hive->hive_id); + return 0; + } + + /* Start with adev pre asic reset first for soft reset check.*/ + if (!amdgpu_device_lock_adev(adev, !hive)) { + DRM_INFO("Bailing on TDR for s_job:%llx, as another already in progress", +- job->base.id); ++ job ? job->base.id : -1); + return 0; + } + +@@ -3827,7 +3827,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev, + if (!ring || !ring->sched.thread) + continue; + +- drm_sched_stop(&ring->sched, &job->base); ++ drm_sched_stop(&ring->sched, job ? &job->base : NULL); + } + } + +@@ -3852,9 +3852,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev, + + + /* Guilty job will be freed after this*/ +- r = amdgpu_device_pre_asic_reset(adev, +- job, +- &need_full_reset); ++ r = amdgpu_device_pre_asic_reset(adev, job, &need_full_reset); + if (r) { + /*TODO Should we stop ?*/ + DRM_ERROR("GPU pre asic reset failed with err, %d for drm dev, %s ", +-- +2.17.1 + |