summary refs log tree commit diff
path: root/sys_util
diff options
context:
space:
mode:
authorDylan Reid <dgreid@chromium.org>2019-03-07 14:21:11 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-20 08:52:59 -0700
commita83356452ceb47ae90ad84dc414f0d810c0f2f07 (patch)
tree6f915cc6bbd9ccb45071e51459043b509dd2d706 /sys_util
parent63e3a83a37fe62fd0189a08ac178b7c2b74b91cb (diff)
downloadcrosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar.gz
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar.bz2
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar.lz
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar.xz
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.tar.zst
crosvm-a83356452ceb47ae90ad84dc414f0d810c0f2f07.zip
sys_util: timerfd: fix clippy lints
Use X::from() instead of as X.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Change-Id: Iefd412a4846d7f9bede57b68807e09cb43a5c579
Reviewed-on: https://chromium-review.googlesource.com/1510066
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'sys_util')
-rw-r--r--sys_util/src/timerfd.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys_util/src/timerfd.rs b/sys_util/src/timerfd.rs
index 9bcfa9c..2387cc5 100644
--- a/sys_util/src/timerfd.rs
+++ b/sys_util/src/timerfd.rs
@@ -38,11 +38,15 @@ impl TimerFd {
         // Safe because we are zero-initializing a struct with only primitive member fields.
         let mut spec: libc::itimerspec = unsafe { mem::zeroed() };
         spec.it_value.tv_sec = dur.as_secs() as libc::time_t;
-        spec.it_value.tv_nsec = dur.subsec_nanos() as libc::c_long;
+        // nsec always fits in i32 because subsec_nanos is defined to be less than one billion.
+        let nsec = dur.subsec_nanos() as i32;
+        spec.it_value.tv_nsec = libc::c_long::from(nsec);
 
         if let Some(int) = interval {
             spec.it_interval.tv_sec = int.as_secs() as libc::time_t;
-            spec.it_interval.tv_nsec = int.subsec_nanos() as libc::c_long;
+            // nsec always fits in i32 because subsec_nanos is defined to be less than one billion.
+            let nsec = int.subsec_nanos() as i32;
+            spec.it_interval.tv_nsec = libc::c_long::from(nsec);
         }
 
         // Safe because this doesn't modify any memory and we check the return value.