Skip to content

Commit 23b128b

Browse files
Lyudeojeda
authored andcommitted
rust: time: Pass correct timer mode ID to hrtimer_start_range_ns
While rebasing rvkms I noticed that timers I was setting seemed to have pretty random timer values that amounted slightly over 2x the time value I set each time. After a lot of debugging, I finally managed to figure out why: it seems that since we moved to Instant and Delta, we mistakenly began passing the clocksource ID to hrtimer_start_range_ns, when we should be passing the timer mode instead. Presumably, this works fine for simple relative timers - but immediately breaks on other types of timers. So, fix this by passing the ID for the timer mode instead. Signed-off-by: Lyude Paul <lyude@redhat.com> Acked-by: Andreas Hindborg <a.hindborg@kernel.org> Reviewed-by: FUJITA Tomonori <fujita.tomonori@gmail.com> Fixes: e0c0ab0 ("rust: time: Make HasHrTimer generic over HrTimerMode") Link: https://lore.kernel.org/r/20250710225129.670051-1-lyude@redhat.com [ Removed cast, applied `rustfmt`, fixed `Fixes:` tag. - Miguel ] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
1 parent 77580e8 commit 23b128b

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

rust/kernel/time/hrtimer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ pub unsafe trait HasHrTimer<T> {
398398
Self::c_timer_ptr(this).cast_mut(),
399399
expires.as_nanos(),
400400
0,
401-
<Self::TimerMode as HrTimerMode>::Clock::ID as u32,
401+
<Self::TimerMode as HrTimerMode>::C_MODE,
402402
);
403403
}
404404
}

0 commit comments

Comments
 (0)