diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1277-drm-amdkfd-Prepare-cleanup-of-KFD-ioctl-APIs.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/1277-drm-amdkfd-Prepare-cleanup-of-KFD-ioctl-APIs.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1277-drm-amdkfd-Prepare-cleanup-of-KFD-ioctl-APIs.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1277-drm-amdkfd-Prepare-cleanup-of-KFD-ioctl-APIs.patch new file mode 100644 index 00000000..898e7d2b --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1277-drm-amdkfd-Prepare-cleanup-of-KFD-ioctl-APIs.patch @@ -0,0 +1,73 @@ +From f1577f1960ac515359d7b9cb7832087738e46a37 Mon Sep 17 00:00:00 2001 +From: Felix Kuehling <Felix.Kuehling@amd.com> +Date: Fri, 18 Mar 2016 17:01:40 -0400 +Subject: [PATCH 1277/4131] drm/amdkfd: Prepare cleanup of KFD ioctl APIs + +* Remove deprecated APIs that were never upstreamed +* Add new alloc_memory_of_scratch argument structure +* Prepare removing _new suffix from the new APIs +* Prepare cleanup of memory allocation flags +* Fix 32-on-64 bit issues in some of the new APIs + +This change does not break the ABI of currently used APIs. KFD and +Thunk can smoothly transition to using the non-new APIs. After that +we will make one ABI-breaking change that consolidates the ioctl number +space and memory allocation flags and fixes remaining 32-on-64-bit +issues. + +Change-Id: Ib5d89db68d77f6227be63e2698fd1532ae6d39a2 +Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +index c763103..b1c5750 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +@@ -1133,8 +1133,7 @@ kfd_ioctl_wait_events(struct file *filp, struct kfd_process *p, void *data) + static int kfd_ioctl_alloc_scratch_memory(struct file *filep, + struct kfd_process *p, void *data) + { +- struct kfd_ioctl_alloc_memory_of_gpu_args *args = +- (struct kfd_ioctl_alloc_memory_of_gpu_args *)data; ++ struct kfd_ioctl_alloc_memory_of_scratch_args *args = data; + struct kfd_process_device *pdd; + struct kfd_dev *dev; + long err; +@@ -1276,12 +1275,12 @@ static uint32_t kfd_convert_user_mem_alloction_flags( + goto out; + } + /* Allocate userptr BO */ +- if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_USERPTR) { ++ if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_USERPTR_OLD) { + kernel_allocation_flags = ALLOC_MEM_FLAGS_USERPTR; + goto out; + } + /* Allocate doorbell BO */ +- if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL) { ++ if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL_OLD) { + kernel_allocation_flags = ALLOC_MEM_FLAGS_DOORBELL; + goto out; + } +@@ -1289,7 +1288,7 @@ static uint32_t kfd_convert_user_mem_alloction_flags( + out: + if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_DGPU_AQL_QUEUE_MEM) + kernel_allocation_flags |= ALLOC_MEM_FLAGS_AQL_QUEUE_MEM; +- if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_COHERENT) ++ if (userspace_flags & KFD_IOC_ALLOC_MEM_FLAGS_COHERENT_OLD) + kernel_allocation_flags |= ALLOC_MEM_FLAGS_COHERENT; + /* Current HW doesn't support non paged memory */ + kernel_allocation_flags |= ALLOC_MEM_FLAGS_NONPAGED; +@@ -1331,7 +1330,7 @@ static int kfd_ioctl_alloc_memory_of_gpu_new(struct file *filep, + if (IS_ERR(pdd)) + return PTR_ERR(pdd); + +- if (args->flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL) { ++ if (args->flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL_OLD) { + if (args->size != kfd_doorbell_process_slice(dev)) + return -EINVAL; + offset = kfd_get_process_doorbells(dev, p); +-- +2.7.4 + |