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

From: Fiona Behrens
Date: Sun Oct 06 2024 - 06:45:21 EST




On 5 Oct 2024, at 20:07, Andrew Lunn wrote:

> 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.
>

Are there more usecases than Delta? Would it make sense in that case to also implement Sub as well?

Thanks,
Fiona

>> +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