On 5/8/17 2:26 PM, David Miller wrote:
From: Karim Eshapa <karim.esh...@gmail.com>
Date: Mon,  8 May 2017 18:58:02 +0200

diff --git a/drivers/net/wimax/i2400m/i2400m-usb.h 
b/drivers/net/wimax/i2400m/i2400m-usb.h
index 649ecad..6fc941c 100644
--- a/drivers/net/wimax/i2400m/i2400m-usb.h
+++ b/drivers/net/wimax/i2400m/i2400m-usb.h
@@ -131,7 +131,7 @@ static inline int edc_inc(struct edc *edc, u16 max_err, u16 
timeframe)
        unsigned long now;

        now = jiffies;
-       if (now - edc->timestart > timeframe) {
+       if (time_after(now - edc->timestart, (unsigned long)timeframe)) {

This is far from correct.

time_after() compares two "jiffies" timestamp values.  The second
argument here is not a jiffies timestamp value.


Perhaps, what is needed here is:

+       if (time_after(jiffies, edc->timestart + timeframe)) {

where in 'timeframe' is set in HZ in all the callers I checked (for the most part it is set to EDC_ERROR_TIMEFRAME which is 1HZ).

~Girish

Reply via email to