From 6019fed4fca8646734f6e94061a593dd5cde404b Mon Sep 17 00:00:00 2001 From: Ben Goz Date: Wed, 21 May 2014 19:50:49 +0300 Subject: [PATCH] hsa/radeon: Fixing minor issues with kernel queues (DIQ) * re-execute runlist on kernel queues destruction. * delete kernel queues from pqm's queues list on pqm unint Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay --- drivers/gpu/hsa/radeon/kfd_device_queue_manager.c | 4 ++++ drivers/gpu/hsa/radeon/kfd_process_queue_manager.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c b/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c index 28c03abb06490..ef52617cea9d7 100644 --- a/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c +++ b/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c @@ -742,6 +742,10 @@ static void destroy_kernel_queue_cpsch(struct device_queue_manager *dqm, struct { BUG_ON(!dqm || !kq); + pr_debug("kfd: In %s\n", __func__); + + dqm->destroy_queues(dqm); + mutex_lock(&dqm->lock); list_del(&kq->list); dqm->queue_count--; diff --git a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c index 83ed9e0fe68c7..c9e0f040b7bc4 100644 --- a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c +++ b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c @@ -267,10 +267,10 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid) if (retval != 0) return retval; - list_del(&pqn->process_queue_list); uninit_queue(pqn->q); } + list_del(&pqn->process_queue_list); kfree(pqn); clear_bit(qid, pqm->queue_slot_bitmap);