Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[firefly-linux-kernel-4.4.55.git] / drivers / misc / sgi-gru / grumain.c
index ae16c8cb4f3e94b5629be31a0f7073cbb05bb18c..1525870f460aa65d0aa1b24baf119cb490ca35ed 100644 (file)
@@ -930,6 +930,7 @@ int gru_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
        struct gru_thread_state *gts;
        unsigned long paddr, vaddr;
+       unsigned long expires;
 
        vaddr = (unsigned long)vmf->virtual_address;
        gru_dbg(grudev, "vma %p, vaddr 0x%lx (0x%lx)\n",
@@ -954,7 +955,8 @@ again:
                        mutex_unlock(&gts->ts_ctxlock);
                        set_current_state(TASK_INTERRUPTIBLE);
                        schedule_timeout(GRU_ASSIGN_DELAY);  /* true hack ZZZ */
-                       if (gts->ts_steal_jiffies + GRU_STEAL_DELAY < jiffies)
+                       expires = gts->ts_steal_jiffies + GRU_STEAL_DELAY;
+                       if (time_before(expires, jiffies))
                                gru_steal_context(gts);
                        goto again;
                }