Re: [PATCH 1/4] rust: sizes: add SZ_4G constant

Alvin Sun
2026-04-17T11:57:08Z

Hi Alexandre,

On 4/17/26 11:18, Alexandre Courbot wrote:
> Hi Alvin,
>
> On Fri Apr 17, 2026 at 10:05 AM JST, Alvin Sun wrote:
>> Add SZ_4G constant defined as SZ_2G * 2. This constant will be used by
>> the Tyr driver for calculating user and kernel VA layout.
>>
>> Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
>> ---
>> rust/kernel/sizes.rs | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/rust/kernel/sizes.rs b/rust/kernel/sizes.rs
>> index 661e680d93306..872f5bb181ecf 100644
>> --- a/rust/kernel/sizes.rs
>> +++ b/rust/kernel/sizes.rs
>> @@ -48,3 +48,5 @@
>> pub const SZ_1G: usize = bindings::SZ_1G as usize;
>> /// 0x80000000
>> pub const SZ_2G: usize = bindings::SZ_2G as usize;
>> +/// 0x100000000
>> +pub const SZ_4G: usize = SZ_2G * 2;
> Note that the way size constants are defined has changed in `master` -
> you will probably want to update this patch accordingly.
I just noticed that my development baseline is based on the stable
repository.
>
> Also there is a `SZ_4G` define in `include/linux/sizes.h`; I am not sure
> why it is not in the bindings, but we should probably add it and get our
> value from that.
SZ_4G is a complex macro that internally uses the _AC macro, which bindgen
cannot handle by default. I found a similar issue that Miguel replied to in
October 2025 [1], where adding --clang-macro-fallback to bindgen can solve
this problem.

I tried adding this parameter to bindgen_parameters, but SZ_4G still
doesn't appear in bindings_generated.rs. However, when using
--clang-macro-fallback with just sizes.h alone, I can successfully generate
the bindings.
>
> Finally, maybe I missed something but the new value doesn't appear to be
> used by this series?
This patchset is a prerequisite for the Tyr ioctls patchset [2] that I'm
currently developing, which hasn't been submitted to the list yet.
[1]:
https://lore.kernel.org/rust-for-linux/CANiq72m20pom+B9EmWO+91E8fjbMEob3JmvHRQ6UaXe_JmatfA@mail.gmail.com/
[2]: https://gitlab.freedesktop.org/panfrost/linux/-/merge_requests/64