habanalabs: check the return value of hl_cs_poll_fences()
authorTomer Tayar <ttayar@habana.ai>
Tue, 28 Dec 2021 11:47:18 +0000 (13:47 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 28 Feb 2022 12:22:01 +0000 (14:22 +0200)
As part of handling of the multi-CS wait ioctl, hl_cs_poll_fences() is
called in a "while (true)" loop. This function can fail, but the
checking of its return value was missed.
Add this check and exit the loop in case of a failure.

Signed-off-by: Tomer Tayar <ttayar@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/command_submission.c

index 0a4ef13d9ac47256e233ed27d180619201d78e59..2f40b937c59fa1f0ab0f75169610c0a20b57b50a 100644 (file)
@@ -2739,7 +2739,7 @@ static int hl_multi_cs_wait_ioctl(struct hl_fpriv *hpriv, void *data)
                mcs_data.update_ts = false;
                rc = hl_cs_poll_fences(&mcs_data, mcs_compl);
 
-               if (mcs_data.completion_bitmap)
+               if (rc || mcs_data.completion_bitmap)
                        break;
 
                /*