On Wed Apr 1, 2026 at 7:43 AM JST, John Hubbard wrote:
> Changes in v3:
> * Dropped the Alignment::from_u64() patch.
>
> * Reworked define_sizes! macro to accept target types as arguments
> (define_sizes!(u32, u64, usize)) using recursive macro arms,
> instead of hardcoding impls for u32 and u64. Overflow checking
> uses u128 casts so the same assert works for any ("reasonable")
> target type.
>
> * Added usize to the DeviceSize implementations, so the trait
> covers u32, u64, and usize.
>
> * Hex values for each constant are now proper doc-comments
> (forwarded via macro meta), instead of inline comments.
>
> * Rebased onto latest drm-rust-next.
>
> Changes in v2:
> * Replaced flat SZ_*_U64 constants with a DeviceSize trait that
> provides SZ_* as associated constants on u32 and u64.
>
> * A define_sizes! macro generates everything from one list of names.
>
> * Added Alignment::from_u64() so alignment values can be constructed
> from DeviceSize constants without falling back to usize variants.
>
> * Rebased onto drm-rust-next. No longer depends on the Blackwell
> patchset.
>
> v1 is here:
> https://lore.kernel.org/20260310023145.120037-1-jhubbard@nvidia.com
>
> John Hubbard (2):
> rust: sizes: add DeviceSize trait for device address space constants
> gpu: nova-core: use DeviceSize trait for u64 size constants
>
> drivers/gpu/nova-core/fb.rs | 21 ++--
> drivers/gpu/nova-core/gsp/fw.rs | 15 ++-
> drivers/gpu/nova-core/regs.rs | 7 +-
> rust/kernel/sizes.rs | 166 +++++++++++++++++++++++---------
> 4 files changed, 141 insertions(+), 68 deletions(-)
>
>
> base-commit: 7c50d748b4a635bc39802ea3f6b120e66b1b9067
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>