diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/2853-drm-amdkfd-RHEL-6.8-fix-for-hash_for_each_rcu.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/2853-drm-amdkfd-RHEL-6.8-fix-for-hash_for_each_rcu.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/2853-drm-amdkfd-RHEL-6.8-fix-for-hash_for_each_rcu.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/2853-drm-amdkfd-RHEL-6.8-fix-for-hash_for_each_rcu.patch new file mode 100644 index 00000000..7af2159a --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/2853-drm-amdkfd-RHEL-6.8-fix-for-hash_for_each_rcu.patch @@ -0,0 +1,47 @@ +From 7cc36b76282246133b4307fd06d1ac895ace33f9 Mon Sep 17 00:00:00 2001 +From: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> +Date: Thu, 30 Nov 2017 14:43:18 -0500 +Subject: [PATCH 2853/4131] drm/amdkfd: [RHEL 6.8] fix for hash_for_each_rcu + +Change-Id: I17e5751f2ee4f06c242c09dd721adeba1ab69039 +Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_process.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c +index 404124c..3cb45c1 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c +@@ -1058,7 +1058,13 @@ void kfd_suspend_all_processes(void) + unsigned int temp; + int idx = srcu_read_lock(&kfd_processes_srcu); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0) ++ struct hlist_node *node; ++ ++ hash_for_each_rcu(kfd_processes_table, temp, node, p, kfd_processes) { ++#else + hash_for_each_rcu(kfd_processes_table, temp, p, kfd_processes) { ++#endif + if (cancel_delayed_work_sync(&p->eviction_work.dwork)) + dma_fence_put(p->eviction_work.quiesce_fence); + cancel_delayed_work_sync(&p->restore_work); +@@ -1078,7 +1084,13 @@ int kfd_resume_all_processes(void) + unsigned int temp; + int ret = 0, idx = srcu_read_lock(&kfd_processes_srcu); + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0) ++ struct hlist_node *node; ++ ++ hash_for_each_rcu(kfd_processes_table, temp, node, p, kfd_processes) { ++#else + hash_for_each_rcu(kfd_processes_table, temp, p, kfd_processes) { ++#endif + if (!schedule_delayed_work(&p->restore_work, 0)) { + pr_err("Restore process %d failed during resume\n", + p->pasid); +-- +2.7.4 + |