struct hl_cb_mgr *cb_mgr, u64 timeout_us,
                                u64 cq_counters_handle, u64 cq_counters_offset,
                                u64 target_value, struct hl_user_interrupt *interrupt,
-                               u32 *status,
-                               u64 *timestamp)
+                               u32 *status, u64 *timestamp)
 {
        struct hl_user_pending_interrupt *pend;
        unsigned long timeout, flags;
                *status = HL_WAIT_CS_STATUS_COMPLETED;
                /* There was no interrupt, we assume the completion is now. */
                pend->fence.timestamp = ktime_get();
-       }
+               goto set_timestamp;
 
-       if (!timeout_us || (*status == HL_WAIT_CS_STATUS_COMPLETED))
+       } else if (!timeout_us) {
+               *status = HL_WAIT_CS_STATUS_BUSY;
+               pend->fence.timestamp = ktime_get();
                goto set_timestamp;
+       }
 
        /* Add pending user interrupt to relevant list for the interrupt
         * handler to monitor