Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

IB/ipath: Use time_before()/_after()

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>

authored by

Manuel Schölling and committed by
Roland Dreier
49410185 7e6d3e5c

+4 -4
+2 -2
drivers/infiniband/hw/ipath/ipath_intr.c
··· 70 70 if (sbuf[0] || sbuf[1] || (piobcnt > 128 && (sbuf[2] || sbuf[3]))) { 71 71 int i; 72 72 if (ipath_debug & (__IPATH_PKTDBG|__IPATH_DBG) && 73 - dd->ipath_lastcancel > jiffies) { 73 + time_after(dd->ipath_lastcancel, jiffies)) { 74 74 __IPATH_DBG_WHICH(__IPATH_PKTDBG|__IPATH_DBG, 75 75 "SendbufErrs %lx %lx", sbuf[0], 76 76 sbuf[1]); ··· 755 755 756 756 /* likely due to cancel; so suppress message unless verbose */ 757 757 if ((errs & (INFINIPATH_E_SPKTLEN | INFINIPATH_E_SPIOARMLAUNCH)) && 758 - dd->ipath_lastcancel > jiffies) { 758 + time_after(dd->ipath_lastcancel, jiffies)) { 759 759 /* armlaunch takes precedence; it often causes both. */ 760 760 ipath_cdbg(VERBOSE, 761 761 "Suppressed %s error (%llx) after sendbuf cancel\n",
+2 -2
drivers/infiniband/hw/ipath/ipath_sdma.c
··· 247 247 248 248 /* ipath_sdma_abort() is done, waiting for interrupt */ 249 249 if (status == IPATH_SDMA_ABORT_DISARMED) { 250 - if (jiffies < dd->ipath_sdma_abort_intr_timeout) 250 + if (time_before(jiffies, dd->ipath_sdma_abort_intr_timeout)) 251 251 goto resched_noprint; 252 252 /* give up, intr got lost somewhere */ 253 253 ipath_dbg("give up waiting for SDMADISABLED intr\n"); ··· 341 341 * JAG - this is bad to just have default be a loop without 342 342 * state change 343 343 */ 344 - if (jiffies > dd->ipath_sdma_abort_jiffies) { 344 + if (time_after(jiffies, dd->ipath_sdma_abort_jiffies)) { 345 345 ipath_dbg("looping with status 0x%08lx\n", 346 346 dd->ipath_sdma_status); 347 347 dd->ipath_sdma_abort_jiffies = jiffies + 5 * HZ;