IB/ipath: Use time_before()/_after()
authorManuel Schölling <manuel.schoelling@gmx.de>
Sun, 25 May 2014 13:26:41 +0000 (15:26 +0200)
committerRoland Dreier <roland@purestorage.com>
Wed, 28 May 2014 16:57:06 +0000 (09:57 -0700)
Time comparisons must use time_after / time_before to avoid problems
when jiffies wraps.

Signed-off-by: Manuel Schölling <manuel.schoelling@gmx.de>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/ipath/ipath_intr.c
drivers/infiniband/hw/ipath/ipath_sdma.c

index 26dfbc8ee0f1cc8423b046d5ce8d2f5789a063b5..01ba792791a0afbed1c030f20001271f6af63aa4 100644 (file)
@@ -70,7 +70,7 @@ void ipath_disarm_senderrbufs(struct ipath_devdata *dd)
        if (sbuf[0] || sbuf[1] || (piobcnt > 128 && (sbuf[2] || sbuf[3]))) {
                int i;
                if (ipath_debug & (__IPATH_PKTDBG|__IPATH_DBG) &&
-                       dd->ipath_lastcancel > jiffies) {
+                       time_after(dd->ipath_lastcancel, jiffies)) {
                        __IPATH_DBG_WHICH(__IPATH_PKTDBG|__IPATH_DBG,
                                          "SendbufErrs %lx %lx", sbuf[0],
                                          sbuf[1]);
@@ -755,7 +755,7 @@ static int handle_errors(struct ipath_devdata *dd, ipath_err_t errs)
 
        /* likely due to cancel; so suppress message unless verbose */
        if ((errs & (INFINIPATH_E_SPKTLEN | INFINIPATH_E_SPIOARMLAUNCH)) &&
-               dd->ipath_lastcancel > jiffies) {
+               time_after(dd->ipath_lastcancel, jiffies)) {
                /* armlaunch takes precedence; it often causes both. */
                ipath_cdbg(VERBOSE,
                        "Suppressed %s error (%llx) after sendbuf cancel\n",
index 98ac18ec977e4099f9ee154e8a53353d6206751d..17a517766ad27b822ba1b77780601a44f7219a7e 100644 (file)
@@ -247,7 +247,7 @@ static void sdma_abort_task(unsigned long opaque)
 
        /* ipath_sdma_abort() is done, waiting for interrupt */
        if (status == IPATH_SDMA_ABORT_DISARMED) {
-               if (jiffies < dd->ipath_sdma_abort_intr_timeout)
+               if (time_before(jiffies, dd->ipath_sdma_abort_intr_timeout))
                        goto resched_noprint;
                /* give up, intr got lost somewhere */
                ipath_dbg("give up waiting for SDMADISABLED intr\n");
@@ -341,7 +341,7 @@ resched:
         * JAG - this is bad to just have default be a loop without
         * state change
         */
-       if (jiffies > dd->ipath_sdma_abort_jiffies) {
+       if (time_after(jiffies, dd->ipath_sdma_abort_jiffies)) {
                ipath_dbg("looping with status 0x%08lx\n",
                          dd->ipath_sdma_status);
                dd->ipath_sdma_abort_jiffies = jiffies + 5 * HZ;