diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1695-drm-amdkfd-Fix-goto-usage.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1695-drm-amdkfd-Fix-goto-usage.patch | 685 |
1 files changed, 685 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1695-drm-amdkfd-Fix-goto-usage.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1695-drm-amdkfd-Fix-goto-usage.patch new file mode 100644 index 00000000..08fcbfd2 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1695-drm-amdkfd-Fix-goto-usage.patch @@ -0,0 +1,685 @@ +From 239c107d6fbdd39a61767924c86435da02f3046e Mon Sep 17 00:00:00 2001 +From: Kent Russell <kent.russell@amd.com> +Date: Wed, 4 Jan 2017 13:23:26 -0500 +Subject: [PATCH 1695/4131] drm/amdkfd: Fix goto usage + +Remove gotos that do not feature any common cleanup, and use gotos +instead of repeating cleanup commands. + +According to kernel.org: "The goto statement comes in handy when a +function exits from multiple locations and some common work such as +cleanup has to be done. If there is no cleanup needed then just return +directly." + +Change-Id: I47d91891e4ebe43574f496efe211e05c3a93943d +Signed-off-by: Kent Russell <kent.russell@amd.com> + + Conflicts: + drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +--- + drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 34 +++++++----- + .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 64 +++++++++------------- + drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 7 +-- + drivers/gpu/drm/amd/amdkfd/kfd_ipc.c | 6 +- + drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 14 +++-- + drivers/gpu/drm/amd/amdkfd/kfd_module.c | 3 +- + drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 24 ++++---- + drivers/gpu/drm/amd/amdkfd/kfd_process.c | 43 +++++++-------- + .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 14 ++--- + drivers/gpu/drm/amd/amdkfd/kfd_rdma.c | 4 +- + 10 files changed, 99 insertions(+), 114 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +index a73cd35..79d8481 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +@@ -567,9 +567,8 @@ kfd_ioctl_dbg_register(struct file *filep, struct kfd_process *p, void *data) + */ + pdd = kfd_bind_process_to_device(dev, p); + if (IS_ERR(pdd)) { +- mutex_unlock(get_dbgmgr_mutex()); +- up_write(&p->lock); +- return PTR_ERR(pdd); ++ status = PTR_ERR(pdd); ++ goto out; + } + + if (!dev->dbgmgr) { +@@ -585,6 +584,7 @@ kfd_ioctl_dbg_register(struct file *filep, struct kfd_process *p, void *data) + } + } + ++out: + mutex_unlock(get_dbgmgr_mutex()); + up_write(&p->lock); + +@@ -947,10 +947,8 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp, + */ + down_write(&p->lock); + +- if (!kfd_has_process_device_data(p)) { +- up_write(&p->lock); +- return 0; +- } ++ if (!kfd_has_process_device_data(p)) ++ goto out_upwrite; + + /* Run over all pdd of the process */ + pdd = kfd_get_first_process_device_data(p); +@@ -959,8 +957,7 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp, + pdd = kfd_get_next_process_device_data(p, pdd); + } while (pdd); + +- up_write(&p->lock); +- return 0; ++ goto out_upwrite; + } + + /* Fill in process-aperture information for all available +@@ -975,10 +972,9 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp, + down_write(&p->lock); + + if (!kfd_has_process_device_data(p)) { +- up_write(&p->lock); + args->num_of_nodes = 0; + kfree(pa); +- return 0; ++ goto out_upwrite; + } + + /* Run over all pdd of the process */ +@@ -1019,6 +1015,10 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp, + (nodes * sizeof(struct kfd_process_device_apertures))); + kfree(pa); + return ret ? -EFAULT : 0; ++ ++out_upwrite: ++ up_write(&p->lock); ++ return 0; + } + + static int +@@ -1043,16 +1043,15 @@ kfd_ioctl_create_event(struct file *filp, struct kfd_process *p, void *data) + pdd = kfd_bind_process_to_device(kfd, p); + if (IS_ERR(pdd)) { + err = PTR_ERR(pdd); +- up_write(&p->lock); +- return -EFAULT; ++ goto out_upwrite; + } + mem = kfd_process_device_translate_handle(pdd, + GET_IDR_HANDLE(args->event_page_offset)); + if (!mem) { + pr_err("Can't find BO, offset is 0x%llx\n", + args->event_page_offset); +- up_write(&p->lock); +- return -EFAULT; ++ err = -EFAULT; ++ goto out_upwrite; + } + up_write(&p->lock); + +@@ -1073,6 +1072,11 @@ kfd_ioctl_create_event(struct file *filp, struct kfd_process *p, void *data) + kern_addr); + + return err; ++ ++out_upwrite: ++ up_write(&p->lock); ++ return err; ++ + } + + static int +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +index 5840e56..7ff9107 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +@@ -233,7 +233,7 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, + struct qcm_process_device *qpd, + int *allocated_vmid) + { +- int retval; ++ int retval = 0; + + BUG_ON(!dqm || !q || !qpd || !allocated_vmid); + +@@ -244,16 +244,14 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, + if (dqm->total_queue_count >= max_num_of_queues_per_device) { + pr_warn("Can't create new usermode queue because %d queues were already created\n", + dqm->total_queue_count); +- mutex_unlock(&dqm->lock); +- return -EPERM; ++ retval = -EPERM; ++ goto out_unlock; + } + + if (list_empty(&qpd->queues_list)) { + retval = allocate_vmid(dqm, qpd, q); +- if (retval != 0) { +- mutex_unlock(&dqm->lock); +- return retval; +- } ++ if (retval != 0) ++ goto out_unlock; + } + *allocated_vmid = qpd->vmid; + q->properties.vmid = qpd->vmid; +@@ -271,7 +269,7 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, + + if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) + retval = create_compute_queue_nocpsch(dqm, q, qpd); +- if (q->properties.type == KFD_QUEUE_TYPE_SDMA) ++ else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) + retval = create_sdma_queue_nocpsch(dqm, q, qpd); + + if (retval != 0) { +@@ -279,8 +277,7 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, + deallocate_vmid(dqm, qpd, q); + *allocated_vmid = 0; + } +- mutex_unlock(&dqm->lock); +- return retval; ++ goto out_unlock; + } + + list_add(&q->list, &qpd->queues_list); +@@ -298,8 +295,9 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm, + pr_debug("Total of %d queues are accountable so far\n", + dqm->total_queue_count); + ++out_unlock: + mutex_unlock(&dqm->lock); +- return 0; ++ return retval; + } + + static int allocate_hqd(struct device_queue_manager *dqm, struct queue *q) +@@ -400,17 +398,15 @@ static int destroy_queue_nocpsch_locked(struct device_queue_manager *dqm, + struct qcm_process_device *qpd, + struct queue *q) + { +- int retval = 0; ++ int retval; + struct mqd_manager *mqd; + + WARN_ON(!dqm || !q || !q->mqd || !qpd); + + mqd = dqm->ops.get_mqd_manager(dqm, + get_mqd_type_from_queue_type(q->properties.type)); +- if (!mqd) { +- retval = -ENOMEM; +- goto out; +- } ++ if (!mqd) ++ return -ENOMEM; + + deallocate_doorbell(qpd, q); + +@@ -431,7 +427,7 @@ static int destroy_queue_nocpsch_locked(struct device_queue_manager *dqm, + KFD_HIQ_TIMEOUT, + q->pipe, q->queue); + if (retval != 0) +- goto out; ++ return retval; + + mqd->uninit_mqd(mqd, q->mqd, q->mqd_mem_obj); + +@@ -441,7 +437,6 @@ static int destroy_queue_nocpsch_locked(struct device_queue_manager *dqm, + if (q->properties.is_active) + dqm->queue_count--; + +-out: + return retval; + } + +@@ -577,10 +572,8 @@ int process_evict_queues(struct device_queue_manager *dqm, + BUG_ON(!dqm || !qpd); + + mutex_lock(&dqm->lock); +- if (qpd->evicted++ > 0) { /* already evicted, do nothing */ +- mutex_unlock(&dqm->lock); +- return 0; +- } ++ if (qpd->evicted++ > 0) /* already evicted, do nothing */ ++ goto out; + + pdd = qpd_to_pdd(qpd); + pr_info_ratelimited("Evicting PASID %u queues\n", +@@ -611,6 +604,7 @@ int process_evict_queues(struct device_queue_manager *dqm, + if (dqm->sched_policy != KFD_SCHED_POLICY_NO_HWS) + retval = execute_queues_cpsch(dqm, qpd->is_debug); + ++out: + mutex_unlock(&dqm->lock); + return retval; + +@@ -782,12 +776,9 @@ static void init_interrupts(struct device_queue_manager *dqm) + } + static int init_scheduler(struct device_queue_manager *dqm) + { +- int retval = 0; +- + BUG_ON(!dqm); + +- +- return retval; ++ return 0; + } + + static int initialize_nocpsch(struct device_queue_manager *dqm) +@@ -1420,14 +1411,11 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm, + uint64_t base = (uintptr_t)alternate_aperture_base; + uint64_t limit = base + alternate_aperture_size - 1; + +- if (limit <= base) +- goto out; +- +- if ((base & APE1_FIXED_BITS_MASK) != 0) +- goto out; +- +- if ((limit & APE1_FIXED_BITS_MASK) != APE1_LIMIT_ALIGNMENT) ++ if (limit <= base || (base & APE1_FIXED_BITS_MASK) != 0 || ++ (limit & APE1_FIXED_BITS_MASK) != APE1_LIMIT_ALIGNMENT) { ++ retval = false; + goto out; ++ } + + qpd->sh_mem_ape1_base = base >> 16; + qpd->sh_mem_ape1_limit = limit >> 16; +@@ -1448,12 +1436,9 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm, + qpd->sh_mem_config, qpd->sh_mem_ape1_base, + qpd->sh_mem_ape1_limit); + +- mutex_unlock(&dqm->lock); +- return retval; +- + out: + mutex_unlock(&dqm->lock); +- return false; ++ return retval; + } + + static int set_trap_handler(struct device_queue_manager *dqm, +@@ -1559,13 +1544,14 @@ static int process_termination_cpsch(struct device_queue_manager *dqm, + mqd = dqm->ops.get_mqd_manager(dqm, + get_mqd_type_from_queue_type(q->properties.type)); + if (!mqd) { +- mutex_unlock(&dqm->lock); +- return -ENOMEM; ++ retval = -ENOMEM; ++ goto out; + } + list_del(&q->list); + mqd->uninit_mqd(mqd, q->mqd, q->mqd_mem_obj); + } + ++out: + mutex_unlock(&dqm->lock); + return retval; + } +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c +index 8294371..1fefacd 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c +@@ -369,7 +369,7 @@ int kfd_init_apertures(struct kfd_process *process) + pdd = kfd_create_process_device_data(dev, process); + if (!pdd) { + pr_err("Failed to create process device data\n"); +- goto err; ++ return -1; + } + /* + * For 64 bit process aperture will be statically reserved in +@@ -396,7 +396,7 @@ int kfd_init_apertures(struct kfd_process *process) + break; + default: + pr_err("Unknown chip in kfd_init_apertures\n"); +- goto err; ++ return -1; + } + + if (KFD_IS_DGPU(dev->device_info->asic_family)) { +@@ -418,9 +418,6 @@ int kfd_init_apertures(struct kfd_process *process) + } + + return 0; +- +-err: +- return -1; + } + + void kfd_flush_tlb(struct kfd_dev *dev, uint32_t pasid) +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_ipc.c b/drivers/gpu/drm/amd/amdkfd/kfd_ipc.c +index e6eb3dc..18109d7 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_ipc.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_ipc.c +@@ -266,13 +266,13 @@ int kfd_ipc_export_as_handle(struct kfd_dev *dev, struct kfd_process *p, + (struct kgd_mem *)kfd_bo->mem, + &dmabuf); + if (r) +- goto err; ++ return r; + + r = ipc_store_insert(dmabuf, ipc_handle, &obj); + if (r) +- goto err; ++ return r; + + kfd_bo->kfd_ipc_obj = obj; +-err: ++ + return r; + } +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c +index 05503216..eb322e0 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c +@@ -238,18 +238,16 @@ static int acquire_packet_buffer(struct kernel_queue *kq, + * make sure calling functions know + * acquire_packet_buffer() failed + */ +- *buffer_ptr = NULL; +- return -ENOMEM; ++ goto err_no_space; + } + + if (wptr + packet_size_in_dwords >= queue_size_dwords) { + /* make sure after rolling back to position 0, there is + * still enough space. + */ +- if (packet_size_in_dwords >= rptr) { +- *buffer_ptr = NULL; +- return -ENOMEM; +- } ++ if (packet_size_in_dwords >= rptr) ++ goto err_no_space; ++ + /* fill nops, roll back and start at position 0 */ + while (wptr > 0) { + queue_address[wptr] = kq->nop_packet; +@@ -263,6 +261,10 @@ static int acquire_packet_buffer(struct kernel_queue *kq, + kq->pending_wptr64 = wptr64 + packet_size_in_dwords; + + return 0; ++ ++err_no_space: ++ *buffer_ptr = NULL; ++ return -ENOMEM; + } + + static int acquire_inline_ib(struct kernel_queue *kq, +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +index 71cea02..24587d7 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +@@ -134,7 +134,7 @@ static int __init kfd_module_init(void) + + err = kfd_pasid_init(); + if (err < 0) +- goto err_pasid; ++ return err; + + err = kfd_chardev_init(); + if (err < 0) +@@ -164,7 +164,6 @@ static int __init kfd_module_init(void) + kfd_chardev_exit(); + err_ioctl: + kfd_pasid_exit(); +-err_pasid: + return err; + } + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c +index 46ed0ff..5b7ae1e 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c +@@ -106,8 +106,7 @@ static int pm_allocate_runlist_ib(struct packet_manager *pm, + + if (retval != 0) { + pr_err("Failed to allocate runlist IB\n"); +- mutex_unlock(&pm->lock); +- return retval; ++ goto out; + } + + *(void **)rl_buffer = pm->ib_buffer_obj->cpu_ptr; +@@ -116,6 +115,7 @@ static int pm_allocate_runlist_ib(struct packet_manager *pm, + memset(*rl_buffer, 0, *rl_buffer_size); + pm->allocated = true; + ++out: + mutex_unlock(&pm->lock); + return retval; + } +@@ -338,21 +338,23 @@ int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address, + uint32_t fence_value) + { + uint32_t *buffer, size; ++ int retval = 0; + + size = pm->pmf->get_query_status_packet_size(); + mutex_lock(&pm->lock); + pm->priv_queue->ops.acquire_packet_buffer(pm->priv_queue, + size / sizeof(uint32_t), (unsigned int **)&buffer); + if (!buffer) { +- mutex_unlock(&pm->lock); + pr_err("Failed to allocate buffer on kernel queue\n"); +- return -ENOMEM; ++ retval = -ENOMEM; ++ goto out; + } + pm->pmf->query_status(pm, buffer, fence_address, fence_value); + pm->priv_queue->ops.submit_packet(pm->priv_queue); +- mutex_unlock(&pm->lock); + +- return 0; ++out: ++ mutex_unlock(&pm->lock); ++ return retval; + } + + int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, +@@ -361,22 +363,24 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type, + unsigned int sdma_engine) + { + uint32_t *buffer, size; ++ int retval = 0; + + size = pm->pmf->get_unmap_queues_packet_size(); + mutex_lock(&pm->lock); + pm->priv_queue->ops.acquire_packet_buffer(pm->priv_queue, + size / sizeof(uint32_t), (unsigned int **)&buffer); + if (!buffer) { +- mutex_unlock(&pm->lock); + pr_err("Failed to allocate buffer on kernel queue\n"); +- return -ENOMEM; ++ retval = -ENOMEM; ++ goto out; + } + pm->pmf->unmap_queues(pm, buffer, type, filter, filter_param, reset, + sdma_engine); + pm->priv_queue->ops.submit_packet(pm->priv_queue); +- mutex_unlock(&pm->lock); + +- return 0; ++out: ++ mutex_unlock(&pm->lock); ++ return retval; + } + + void pm_release_ib(struct packet_manager *pm) +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c +index 40d2630..165591f 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c +@@ -169,7 +169,7 @@ static int kfd_process_alloc_gpuvm(struct kfd_process *p, + */ + static int kfd_process_reserve_ib_mem(struct kfd_process *p) + { +- int err = 0; ++ int ret = 0; + struct kfd_process_device *temp, *pdd = NULL; + struct kfd_dev *kdev = NULL; + struct qcm_process_device *qpd = NULL; +@@ -183,25 +183,25 @@ static int kfd_process_reserve_ib_mem(struct kfd_process *p) + continue; + + if (qpd->ib_base) { /* is dGPU */ +- err = kfd_process_alloc_gpuvm(p, kdev, ++ ret = kfd_process_alloc_gpuvm(p, kdev, + qpd->ib_base, kdev->ib_size, + &kaddr, pdd); +- if (!err) ++ if (!ret) + qpd->ib_kaddr = kaddr; + else +- goto err_out; ++ /* In case of error, the kfd_bos for some pdds ++ * which are already allocated successfully ++ * will be freed in upper level function ++ * i.e. create_process(). ++ */ ++ return ret; + } else { + /* FIXME: Support APU */ + continue; + } + } + +-err_out: +- /* In case of error, the kfd_bos for some pdds which are already +- * allocated successfully will be freed in upper level function +- * i.e. create_process(). +- */ +- return err; ++ return 0; + } + + struct kfd_process *kfd_create_process(struct file *filep) +@@ -496,7 +496,7 @@ static const struct mmu_notifier_ops kfd_process_mmu_notifier_ops = { + + static int kfd_process_init_cwsr(struct kfd_process *p, struct file *filep) + { +- int err = 0; ++ int ret; + unsigned long offset; + struct kfd_process_device *temp, *pdd = NULL; + struct kfd_dev *dev = NULL; +@@ -511,13 +511,18 @@ static int kfd_process_init_cwsr(struct kfd_process *p, struct file *filep) + continue; + if (qpd->cwsr_base) { + /* cwsr_base is only set for DGPU */ +- err = kfd_process_alloc_gpuvm(p, dev, qpd->cwsr_base, ++ ret = kfd_process_alloc_gpuvm(p, dev, qpd->cwsr_base, + dev->cwsr_size, &kaddr, pdd); +- if (!err) { ++ if (!ret) { + qpd->cwsr_kaddr = kaddr; + qpd->tba_addr = qpd->cwsr_base; + } else +- goto out; ++ /* In case of error, the kfd_bos for some pdds ++ * which are already allocated successfully ++ * will be freed in upper level function ++ * i.e. create_process(). ++ */ ++ return ret; + } else { + offset = (kfd_get_gpu_id(dev) | + KFD_MMAP_TYPE_RESERVED_MEM) << PAGE_SHIFT; +@@ -530,8 +535,7 @@ static int kfd_process_init_cwsr(struct kfd_process *p, struct file *filep) + (int)qpd->tba_addr); + qpd->tba_addr = 0; + qpd->cwsr_kaddr = NULL; +- err = -ENOMEM; +- goto out; ++ return -ENOMEM; + } + } + +@@ -543,12 +547,7 @@ static int kfd_process_init_cwsr(struct kfd_process *p, struct file *filep) + qpd->tba_addr, qpd->tma_addr, qpd->cwsr_kaddr); + } + +-out: +- /* In case of error, the kfd_bos for some pdds which are already +- * allocated successfully will be freed in upper level function +- * i.e. create_process(). +- */ +- return err; ++ return 0; + } + + static struct kfd_process *create_process(const struct task_struct *thread, +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +index 0ae732c..401b279 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +@@ -35,9 +35,8 @@ static inline struct process_queue_node *get_queue_by_qid( + BUG_ON(!pqm); + + list_for_each_entry(pqn, &pqm->queues, process_queue_list) { +- if (pqn->q && pqn->q->properties.queue_id == qid) +- return pqn; +- if (pqn->kq && pqn->kq->queue->properties.queue_id == qid) ++ if ((pqn->q && pqn->q->properties.queue_id == qid) || ++ (pqn->kq && pqn->kq->queue->properties.queue_id == qid)) + return pqn; + } + +@@ -137,8 +136,6 @@ static int create_cp_queue(struct process_queue_manager *pqm, + { + int retval; + +- retval = 0; +- + /* Doorbell initialized in user space*/ + q_properties->doorbell_ptr = NULL; + +@@ -148,7 +145,7 @@ static int create_cp_queue(struct process_queue_manager *pqm, + + retval = init_queue(q, q_properties); + if (retval != 0) +- goto err_init_queue; ++ return retval; + + (*q)->device = dev; + (*q)->process = pqm->process; +@@ -156,9 +153,6 @@ static int create_cp_queue(struct process_queue_manager *pqm, + pr_debug("PQM After init queue"); + + return retval; +- +-err_init_queue: +- return retval; + } + + int pqm_create_queue(struct process_queue_manager *pqm, +@@ -198,7 +192,7 @@ int pqm_create_queue(struct process_queue_manager *pqm, + list_for_each_entry(cur, &pdd->qpd.queues_list, list) + num_queues++; + if (num_queues >= dev->device_info->max_no_of_hqd/2) +- return (-ENOSPC); ++ return -ENOSPC; + } + + retval = find_available_queue_slot(pqm, qid); +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_rdma.c b/drivers/gpu/drm/amd/amdkfd/kfd_rdma.c +index bcf0bf2..b30072a 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_rdma.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_rdma.c +@@ -234,8 +234,8 @@ static int is_gpu_address(uint64_t address, struct pid *pid) + kfd_unref_process(p); + if (!buf_obj) + return 0; +- else +- return 1; ++ ++ return 1; + } + + /** +-- +2.7.4 + |