From 40499198937df50599c9c7ee2b1558b462763322 Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Wed, 8 Nov 2017 20:25:40 -0500 Subject: [PATCH 2861/4131] drm/amdkfd: Simplify kfd_reserved_mem_mmap * Remove unnecessary alignment checks * Use kfd_get_process_device_data instead of reinventing it * Clean up error messages Change-Id: I007e6cd0453bf7b6eeaeec7656b524bdd25d18d5 Signed-off-by: Felix Kuehling --- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 17c2ecd..50ff3ef 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -1118,34 +1118,25 @@ int kfd_reserved_mem_mmap(struct kfd_process *process, struct vm_area_struct *vma) { struct kfd_dev *dev = kfd_device_by_id(vma->vm_pgoff); - struct kfd_process_device *temp, *pdd = NULL; - struct qcm_process_device *qpd = NULL; + struct kfd_process_device *pdd; + struct qcm_process_device *qpd; if (!dev) return -EINVAL; - if (((vma->vm_end - vma->vm_start) != KFD_CWSR_TBA_TMA_SIZE) || - (vma->vm_start & (PAGE_SIZE - 1)) || - (vma->vm_end & (PAGE_SIZE - 1))) { - pr_err("KFD only support page aligned memory map and correct size.\n"); + if ((vma->vm_end - vma->vm_start) != KFD_CWSR_TBA_TMA_SIZE) { + pr_err("Incorrect CWSR mapping size.\n"); return -EINVAL; } - pr_debug("kfd reserved mem mmap been called.\n"); - - list_for_each_entry_safe(pdd, temp, &process->per_device_data, - per_device_list) { - if (dev == pdd->dev) { - qpd = &pdd->qpd; - break; - } - } - if (!qpd) + pdd = kfd_get_process_device_data(dev, process); + if (!pdd) return -EINVAL; + qpd = &pdd->qpd; qpd->cwsr_kaddr = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, get_order(KFD_CWSR_TBA_TMA_SIZE)); if (!qpd->cwsr_kaddr) { - pr_err("amdkfd: error alloc CWSR isa memory per process.\n"); + pr_err("Error allocating per process CWSR buffer.\n"); return -ENOMEM; } -- 2.7.4