summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2015-09-27 20:45:09 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-09-29 02:03:34 (GMT)
commita11ef8ca94cccca98e0d7f23d5145cad71dd62f0 (patch)
tree059257a7f48b14db1c2f27207d3f4a54ab827efd /drivers
parentc8ff18106cf12af944c0c33ada5aa9a0a0e54048 (diff)
downloadlinux-a11ef8ca94cccca98e0d7f23d5145cad71dd62f0.tar.xz
staging/lustre: avoid unnecessary timeval conversion
The lnet_eq_wait_locked tries to wait for time to pass or an event to wake up the wait queue. The entire logic seems to be a very elaborate reimplementation of wait_event(). I'm not trying to clean up the entire logic here, but this at least gets rid of the multi-way conversion between miliseconds, timeval and jiffies. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-eq.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/staging/lustre/lnet/lnet/lib-eq.c b/drivers/staging/lustre/lnet/lnet/lib-eq.c
index f19ce9a..8b843c5 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-eq.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-eq.c
@@ -341,12 +341,9 @@ __must_hold(&the_lnet.ln_eq_wait_lock)
schedule();
} else {
- struct timeval tv;
-
- now = cfs_time_current();
- schedule_timeout(cfs_time_seconds(tms) / 1000);
- cfs_duration_usec(cfs_time_sub(cfs_time_current(), now), &tv);
- tms -= (int)(tv.tv_sec * 1000 + tv.tv_usec / 1000);
+ now = jiffies;
+ schedule_timeout(msecs_to_jiffies(tms));
+ tms -= jiffies_to_msecs(jiffies - now);
if (tms < 0) /* no more wait but may have new event */
tms = 0;
}