This patch fixes a bug in the timeout calculation done in sync_with_hw functions. The original code assumed that jiffies is incremented in ms. Signed-off-by: Oded Gabbay <oded.gabbay@xxxxxxx> --- drivers/gpu/hsa/radeon/kfd_kernel_queue.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/hsa/radeon/kfd_kernel_queue.c b/drivers/gpu/hsa/radeon/kfd_kernel_queue.c index 25528b3..ce3261b 100644 --- a/drivers/gpu/hsa/radeon/kfd_kernel_queue.c +++ b/drivers/gpu/hsa/radeon/kfd_kernel_queue.c @@ -222,12 +222,18 @@ static void submit_packet(struct kernel_queue *kq) static int sync_with_hw(struct kernel_queue *kq, unsigned long timeout_ms) { + unsigned long org_timeout_ms; + BUG_ON(!kq); - timeout_ms += jiffies; + + org_timeout_ms = timeout_ms; + timeout_ms += jiffies * 1000 / HZ; while (*kq->wptr_kernel != *kq->rptr_kernel) { - if (time_after(jiffies, timeout_ms)) { - pr_err("kfd: kernel_queue %s timeout expired %lu\n", __func__, timeout_ms); - pr_err("kfd: wptr: %d rptr: %d\n", *kq->wptr_kernel, *kq->rptr_kernel); + if (time_after(jiffies * 1000 / HZ, timeout_ms)) { + pr_err("kfd: kernel_queue %s timeout expired %lu\n", + __func__, org_timeout_ms); + pr_err("kfd: wptr: %d rptr: %d\n", + *kq->wptr_kernel, *kq->rptr_kernel); return -ETIME; } cpu_relax(); -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel