Thread (16 messages) 16 messages, 6 authors, 2025-08-24

Re: [PATCH v2 1/2] rust: alloc: specify the minimum alignment of each allocator

From: Alice Ryhl <aliceryhl@google.com>
Date: 2025-08-13 09:32:17
Also in: linux-mm, lkml

On Wed, Aug 13, 2025 at 11:14 AM Danilo Krummrich [off-list ref] wrote:
On Wed Aug 13, 2025 at 9:52 AM CEST, Alice Ryhl wrote:
quoted
On Tue, Aug 12, 2025 at 07:52:35PM +0200, Danilo Krummrich wrote:
quoted
On Mon Aug 11, 2025 at 2:31 PM CEST, Alice Ryhl wrote:
quoted
diff --git a/rust/kernel/alloc/allocator.rs b/rust/kernel/alloc/allocator.rs
index aa2dfa9dca4c309e5a9eafc7da6a8a9bd7b54b11..25fc9f9ae3b4e471a08d77130b374bd1397f7384 100644
--- a/rust/kernel/alloc/allocator.rs
+++ b/rust/kernel/alloc/allocator.rs
@@ -17,6 +17,8 @@
 use crate::bindings;
 use crate::pr_warn;

+const ARCH_KMALLOC_MINALIGN: usize = bindings::ARCH_KMALLOC_MINALIGN as usize;
I think this needs the following diff:
diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helper.h
index 84d60635e8a9..4ad9add117ea 100644
--- a/rust/bindings/bindings_helper.h
+++ b/rust/bindings/bindings_helper.h
@@ -84,6 +84,7 @@

 /* `bindgen` gets confused at certain things. */
 const size_t RUST_CONST_HELPER_ARCH_SLAB_MINALIGN = ARCH_SLAB_MINALIGN;
+const size_t RUST_CONST_HELPER_ARCH_KMALLOC_MINALIGN = ARCH_KMALLOC_MINALIGN;
 const size_t RUST_CONST_HELPER_PAGE_SIZE = PAGE_SIZE;
 const gfp_t RUST_CONST_HELPER_GFP_ATOMIC = GFP_ATOMIC;
 const gfp_t RUST_CONST_HELPER_GFP_KERNEL = GFP_KERNEL;
diff --git a/rust/kernel/alloc/allocator.rs b/rust/kernel/alloc/allocator.rs
index 25fc9f9ae3b4..5003907f0240 100644
--- a/rust/kernel/alloc/allocator.rs
+++ b/rust/kernel/alloc/allocator.rs
@@ -17,7 +17,7 @@
 use crate::bindings;
 use crate::pr_warn;

-const ARCH_KMALLOC_MINALIGN: usize = bindings::ARCH_KMALLOC_MINALIGN as usize;
+const ARCH_KMALLOC_MINALIGN: usize = bindings::ARCH_KMALLOC_MINALIGN;

 /// The contiguous kernel allocator.
 ///

No need to resend I can fix it up when applying the patch.
Hmm. Maybe that depends on the configuration? The constant was generated
for me. Either way, happy with the suggested change.
That is a bit odd, I'd like to understand this before merging.

All of the definitions in the kernel are defines that shouldn't be picked up by
bindgen.
It is possible for bindgen to pick up a #define in some cases. The
main case where bindgen fails is when the macro is defined in terms of
a function-like macro. This is why we see so many failures with _IO*
macros.
 Are you sure you do not have additional local changes?
Yes.

Alice
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help