From: Ofir Bitton <[email protected]> As in standard wait cs, we must release a signal fence once a collective wait cs was dropped and not submitted.
Signed-off-by: Ofir Bitton <[email protected]> Reviewed-by: Oded Gabbay <[email protected]> Signed-off-by: Oded Gabbay <[email protected]> --- drivers/misc/habanalabs/common/command_submission.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/misc/habanalabs/common/command_submission.c b/drivers/misc/habanalabs/common/command_submission.c index 18cd20eec4c5..6de4b161856c 100644 --- a/drivers/misc/habanalabs/common/command_submission.c +++ b/drivers/misc/habanalabs/common/command_submission.c @@ -300,9 +300,11 @@ static void cs_do_release(struct kref *ref) if (!cs->submitted) { /* In case the wait for signal CS was submitted, the put occurs - * in init_signal_wait_cs() right before hanging on the PQ. + * in init_signal_wait_cs() or collective_wait_init_cs() + * right before hanging on the PQ. */ - if (cs->type == CS_TYPE_WAIT) + if (cs->type == CS_TYPE_WAIT || + cs->type == CS_TYPE_COLLECTIVE_WAIT) hl_fence_put(cs->signal_fence); goto out; -- 2.17.1

