Re: [PATCH v4 0/3] tools/accounting: refactor delay fields and share format_timespec()
<[email protected]> Tue, 4 Aug 2026 17:04:45 +0800 (CST)
| Newsgroups | gmane.linux.kernel,gmane.linux.documentation |
|---|---|
| Message-ID | <[email protected]> |
>> >> +struct __kernel_old_timespec {
>> >> + __kernel_long_t tv_sec;
>> >> + long tv_nsec;
>> >Does this hardcoded long for tv_nsec cause an ABI layout mismatch on x32?
>> >The header comment above explicitly mentions avoiding a hardcoded long to
>> >ensure x32 gets the correct struct layout, but tv_nsec is defined as long
>> >here instead of __kernel_long_t.
>> >If tools compile against this header on x32, it looks like they will get a
>> >32-bit tv_nsec instead of the 64-bit value expected by the core kernel UAPI,
>> >which could result in truncated timestamps or out-of-bounds structure access.
>>
>> We cannot replace long with __kernel_long_t for tv_nsec.
>
>The UAPI *is* in fact about to use __kernel_long_t for tv_nsec.
>See commit 79ced850e549 ("y2038: uapi: Use 64-bit
>__kernel_old_timespec::tv_nsec on x32") in -next.
Thanks for the clarification. I've verified that commit 79ced850e549 has
been merged into the next branch, where upstream changed `tv_nsec` of
`__kernel_old_timespec` to `__kernel_long_t`. I will update this
structure definition in our local header to keep our UAPI definitions
aligned with the mainline kernel.
Thanks
Yaxin