[PATCH 64/83] hsa/radeon: update queue fault handling
From: Ben Goz This commit adding fault handling for process queue manager update queue Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay --- drivers/gpu/hsa/radeon/kfd_process_queue_manager.c | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c index fe74dd7..2034d2b 100644 --- a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c +++ b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c @@ -334,6 +334,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid) int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid, struct queue_properties *p) { + int retval; struct process_queue_node *pqn; BUG_ON(!pqm); @@ -346,9 +347,17 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid, struct pqn->q->properties.queue_percent = p->queue_percent; pqn->q->properties.priority = p->priority; - pqn->q->device->dqm->destroy_queues(pqn->q->device->dqm); - pqn->q->device->dqm->update_queue(pqn->q->device->dqm, pqn->q); - pqn->q->device->dqm->execute_queues(pqn->q->device->dqm); + retval = pqn->q->device->dqm->destroy_queues(pqn->q->device->dqm); + if (retval != 0) + return retval; + + retval = pqn->q->device->dqm->update_queue(pqn->q->device->dqm, pqn->q); + if (retval != 0) + return retval; + + retval = pqn->q->device->dqm->execute_queues(pqn->q->device->dqm); + if (retval != 0) + return retval; return 0; } -- 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 64/83] hsa/radeon: update queue fault handling
From: Ben Goz ben@amd.com This commit adding fault handling for process queue manager update queue Signed-off-by: Ben Goz ben@amd.com Signed-off-by: Oded Gabbay oded.gab...@amd.com --- drivers/gpu/hsa/radeon/kfd_process_queue_manager.c | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c index fe74dd7..2034d2b 100644 --- a/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c +++ b/drivers/gpu/hsa/radeon/kfd_process_queue_manager.c @@ -334,6 +334,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid) int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid, struct queue_properties *p) { + int retval; struct process_queue_node *pqn; BUG_ON(!pqm); @@ -346,9 +347,17 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid, struct pqn-q-properties.queue_percent = p-queue_percent; pqn-q-properties.priority = p-priority; - pqn-q-device-dqm-destroy_queues(pqn-q-device-dqm); - pqn-q-device-dqm-update_queue(pqn-q-device-dqm, pqn-q); - pqn-q-device-dqm-execute_queues(pqn-q-device-dqm); + retval = pqn-q-device-dqm-destroy_queues(pqn-q-device-dqm); + if (retval != 0) + return retval; + + retval = pqn-q-device-dqm-update_queue(pqn-q-device-dqm, pqn-q); + if (retval != 0) + return retval; + + retval = pqn-q-device-dqm-execute_queues(pqn-q-device-dqm); + if (retval != 0) + return retval; return 0; } -- 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/