rc = -EIO;
                                *status = HL_WAIT_CS_STATUS_ABORTED;
                        } else {
-                               dev_err_ratelimited(hdev->dev, "Waiting for interrupt ID %d timedout\n",
-                                               interrupt->interrupt_id);
-                               rc = -ETIMEDOUT;
+                               /* The wait has timed-out. We don't know anything beyond that
+                                * because the workload wasn't submitted through the driver.
+                                * Therefore, from driver's perspective, the workload is still
+                                * executing.
+                                */
+                               rc = 0;
+                               *status = HL_WAIT_CS_STATUS_BUSY;
                        }
-                       *status = HL_WAIT_CS_STATUS_BUSY;
                }
        }
 
                        interrupt->interrupt_id);
                rc = -EINTR;
        } else {
+               /* The wait has timed-out. We don't know anything beyond that
+                * because the workload wasn't submitted through the driver.
+                * Therefore, from driver's perspective, the workload is still
+                * executing.
+                */
+               rc = 0;
                *status = HL_WAIT_CS_STATUS_BUSY;
        }