[PATCH 75/83] hsa/radeon: Fixing minor issues with kernel queues (DIQ)

2014-07-10 Thread Oded Gabbay
From: Ben Goz 

* 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 4c53e57..12b8b33 100644
--- a/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c
+++ b/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c
@@ -759,6 +759,10 @@ static void destroy_kernel_queue_cpsch(struct 
device_queue_manager *dqm,
 {
BUG_ON(!dqm || !kq);
 
+   pr_debug("kfd: In %s\n", __func__);
+
+   dqm->destroy_queues(dqm);
+
mutex_lock(>lock);
list_del(>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 89461ab..5d7c46d 100644
--- a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c
+++ b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c
@@ -273,10 +273,10 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, 
unsigned int qid)
if (retval != 0)
return retval;
 
-   list_del(>process_queue_list);
uninit_queue(pqn->q);
}
 
+   list_del(>process_queue_list);
kfree(pqn);
clear_bit(qid, pqm->queue_slot_bitmap);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 75/83] hsa/radeon: Fixing minor issues with kernel queues (DIQ)

2014-07-10 Thread Oded Gabbay
From: Ben Goz ben@amd.com

* re-execute runlist on kernel queues destruction.
* delete kernel queues from pqm's queues list on pqm unint

Signed-off-by: Ben Goz ben@amd.com
Signed-off-by: Oded Gabbay oded.gab...@amd.com
---
 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 4c53e57..12b8b33 100644
--- a/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c
+++ b/drivers/gpu/hsa/radeon/kfd_device_queue_manager.c
@@ -759,6 +759,10 @@ static void destroy_kernel_queue_cpsch(struct 
device_queue_manager *dqm,
 {
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 89461ab..5d7c46d 100644
--- a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c
+++ b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c
@@ -273,10 +273,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);
 
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/