From: "Gary Guo" <gary@garyguo.net>
To: "Vlastimil Babka (SUSE)" <vbabka@kernel.org>,
"Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>
Cc: "Nathan Chancellor" <nathan@kernel.org>,
"Bert Karwatzki" <spasswolf@web.de>,
"Harry Yoo" <harry@kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-next@vger.kernel.org>, "Alice Ryhl" <aliceryhl@google.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
<rust-for-linux@vger.kernel.org>
Subject: Re: rust compile failure in next-20260730
Date: Mon, 03 Aug 2026 16:32:02 +0100 [thread overview]
Message-ID: <DKFF147BG8PR.I12RKSRFQS1B@garyguo.net> (raw)
In-Reply-To: <7c39e6cb-0ccf-4a50-a853-0f6012b05044@kernel.org>
On Mon Aug 3, 2026 at 4:10 PM BST, Vlastimil Babka (SUSE) wrote:
> On 8/3/26 16:23, Boqun Feng wrote:
>> On Mon, Aug 03, 2026 at 02:57:49PM +0100, Gary Guo wrote:
>>>
>>> We could also unconditionally use `kvfree_rcu_head` here, and
>>> add
>>>
>>> #[cfg(not(CONFIG_KVFREE_RCU_BATCHED))]
>>> pub type kvfree_rcu_head = callback_head;
>>>
>>> to bindings.rs?
>>>
>>
>> This option is currently not maintainable unless it becomes a
>> maintainer-aware way to handle things like this.
>>
>>> (Or even better, changing `#define` to `typedef` so bindgen takes care of
>>> everything).
>>>
>>
>> Yes, this is better IMO, but it's up to slab maintainers. :-)
>
> Can you elaborate a bit please, how would that look like?
I was thinking of doing `typedef struct rcu_head kvfree_rcu_head;` but of course
that didn't work because you can't use typedef to create `kvfree_rcu_head` :)
However, something like this could work?
#ifdef CONFIG_KVFREE_RCU_BATCHED
...
#else
struct kvfree_rcu_head {
struct rcu_head head;
};
#endif
and everywhere add a cast everywhere that expects kvfree_rcu_head == rcu_head.
but this would indeed be more complex :(
It's a bit unfortunate that C doesn't have a better way of doing struct type
aliases without doing textual replacement with macro.
Another approach is to have:
#ifdef __BINDGEN__
typedef struct rcu_head kvfree_rcu_head;
#endif
#define kvfree_rcu_head rcu_head
so bindgen can still see the typedef while it doesn't have effect for C users.
But this doesn't look perfect either.
Best,
Gary
next prev parent reply other threads:[~2026-08-03 15:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 12:28 rust compile failure in next-20260730 Bert Karwatzki
2026-07-31 13:19 ` Thorsten Leemhuis
2026-07-31 13:48 ` Luna Jernberg
2026-07-31 19:25 ` Nathan Chancellor
2026-08-03 13:57 ` Gary Guo
2026-08-03 14:23 ` Boqun Feng
2026-08-03 15:10 ` Vlastimil Babka (SUSE)
2026-08-03 15:32 ` Gary Guo [this message]
2026-08-03 21:04 ` Vlastimil Babka (SUSE)
2026-08-04 10:10 ` Gary Guo
2026-08-04 10:35 ` Vlastimil Babka (SUSE)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DKFF147BG8PR.I12RKSRFQS1B@garyguo.net \
--to=gary@garyguo.net \
--cc=aliceryhl@google.com \
--cc=boqun@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=harry@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=spasswolf@web.de \
--cc=vbabka@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.