Re: [PATCH net-next v2 3/6] rust: time: Implement addition of Ktime and Delta

From: Andrew Lunn
Date: Sat Oct 05 2024 - 14:08:42 EST


On Sat, Oct 05, 2024 at 09:25:28PM +0900, FUJITA Tomonori wrote:
> Implement Add<Delta> for Ktime to support the operation:
>
> Ktime = Ktime + Delta
>
> This is used to calculate the future time when the timeout will occur.

Since Delta can be negative, it could also be a passed time. For a
timeout, that does not make much sense.

> +impl core::ops::Add<Delta> for Ktime {
> + type Output = Ktime;
> +
> + #[inline]
> + fn add(self, delta: Delta) -> Ktime {
> + // SAFETY: FFI call.
> + let t = unsafe { bindings::ktime_add_ns(self.inner, delta.as_nanos() as u64) };

So you are throwing away the sign bit. What does Rust in the kernel do
if it was a negative delta?

I think the types being used here need more consideration.

Andrew