From: Ben Goz <ben.goz@xxxxxxx> This commit adding fault handling for process queue manager update queue Signed-off-by: Ben Goz <ben.goz@xxxxxxx> Signed-off-by: Oded Gabbay <oded.gabbay@xxxxxxx> --- 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel