diff options
| author | Danilo Krummrich <dakr@kernel.org> | 2026-03-17 20:11:03 +0100 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2026-03-17 20:12:36 +0100 |
| commit | de25dc008ea74bc6f33b8d6e773e51a920813fdc (patch) | |
| tree | e1ca61335676a2f5fd4bb603ef40f47d14398190 /tools/include/linux/overflow.h | |
| parent | dc33ae50d32b509af5ae61030912fa20c79ef112 (diff) | |
| parent | 79cf41692aadc3d0ac9b1d8e2c2f620ce2103918 (diff) | |
Merge tag 'rust_io-7.1-rc1' into driver-core-next
Register abstraction and I/O infrastructure improvements
Introduce the register!() macro to define type-safe I/O register
accesses. Refactor the IoCapable trait into a functional trait, which
simplifies I/O backends and removes the need for overloaded Io methods.
This is a stable tag for other trees to merge.
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'tools/include/linux/overflow.h')
| -rw-r--r-- | tools/include/linux/overflow.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/include/linux/overflow.h b/tools/include/linux/overflow.h index dcb0c1bf6866..3427d7880326 100644 --- a/tools/include/linux/overflow.h +++ b/tools/include/linux/overflow.h @@ -69,6 +69,25 @@ }) /** + * size_mul() - Calculate size_t multiplication with saturation at SIZE_MAX + * @factor1: first factor + * @factor2: second factor + * + * Returns: calculate @factor1 * @factor2, both promoted to size_t, + * with any overflow causing the return value to be SIZE_MAX. The + * lvalue must be size_t to avoid implicit type conversion. + */ +static inline size_t __must_check size_mul(size_t factor1, size_t factor2) +{ + size_t bytes; + + if (check_mul_overflow(factor1, factor2, &bytes)) + return SIZE_MAX; + + return bytes; +} + +/** * array_size() - Calculate size of 2-dimensional array. * * @a: dimension one |
