[PATCH v3 0/2] rust, nova-core: add DeviceSize trait for SZ_* constants

John Hubbard posted 2 patches 8 hours ago
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(-)
[PATCH v3 0/2] rust, nova-core: add DeviceSize trait for SZ_* constants
Posted by John Hubbard 8 hours ago
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
-- 
2.53.0
Re: [PATCH v3 0/2] rust, nova-core: add DeviceSize trait for SZ_* constants
Posted by Eliot Courtney 3 minutes ago
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>