All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] uaccess: decouple INLINE_COPY_FROM_USER and CONFIG_RUST
@ 2025-10-23 17:16 Yury Norov (NVIDIA)
  2025-10-24  9:12 ` Alice Ryhl
  2026-03-24 13:57 ` Christophe Leroy (CS GROUP)
  0 siblings, 2 replies; 5+ messages in thread
From: Yury Norov (NVIDIA) @ 2025-10-23 17:16 UTC (permalink / raw)
  To: Miguel Ojeda, Alice Ryhl, Boqun Feng, Danilo Krummrich
  Cc: Yury Norov (NVIDIA), Andrew Morton, Arnd Bergmann, Alex Gaynor,
	Gary Guo, John Hubbard, Björn Roy Baron, Benno Lossin,
	Andreas Hindborg, Trevor Gross, linux-kernel, rust-for-linux

Commit 1f9a8286bc0c ("uaccess: always export _copy_[from|to]_user with
CONFIG_RUST") exports _copy_{from,to}_user() unconditionally, if RUST
is enabled. This pollutes exported symbols namespace, and spreads RUST
ifdefery in core files.

It's better to declare a corresponding helper under the rust/helpers,
similarly to how non-underscored copy_{from,to}_user() is handled.

Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
---
 lib/usercopy.c         |  4 ++--
 rust/helpers/uaccess.c | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/usercopy.c b/lib/usercopy.c
index 7b17b83c8042..b00a3a957de6 100644
--- a/lib/usercopy.c
+++ b/lib/usercopy.c
@@ -12,7 +12,7 @@
 
 /* out-of-line parts */
 
-#if !defined(INLINE_COPY_FROM_USER) || defined(CONFIG_RUST)
+#if !defined(INLINE_COPY_FROM_USER)
 unsigned long _copy_from_user(void *to, const void __user *from, unsigned long n)
 {
 	return _inline_copy_from_user(to, from, n);
@@ -20,7 +20,7 @@ unsigned long _copy_from_user(void *to, const void __user *from, unsigned long n
 EXPORT_SYMBOL(_copy_from_user);
 #endif
 
-#if !defined(INLINE_COPY_TO_USER) || defined(CONFIG_RUST)
+#if !defined(INLINE_COPY_TO_USER)
 unsigned long _copy_to_user(void __user *to, const void *from, unsigned long n)
 {
 	return _inline_copy_to_user(to, from, n);
diff --git a/rust/helpers/uaccess.c b/rust/helpers/uaccess.c
index f49076f813cd..4629b2d15529 100644
--- a/rust/helpers/uaccess.c
+++ b/rust/helpers/uaccess.c
@@ -13,3 +13,15 @@ unsigned long rust_helper_copy_to_user(void __user *to, const void *from,
 {
 	return copy_to_user(to, from, n);
 }
+
+#ifdef INLINE_COPY_FROM_USER
+unsigned long rust_helper__copy_from_user(void *to, const void __user *from, unsigned long n)
+{
+	return _inline_copy_from_user(to, from, n);
+}
+
+unsigned long rust_helper__copy_to_user(void __user *to, const void *from, unsigned long n)
+{
+	return _inline_copy_to_user(to, from, n);
+}
+#endif
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-03-24 13:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 17:16 [PATCH] uaccess: decouple INLINE_COPY_FROM_USER and CONFIG_RUST Yury Norov (NVIDIA)
2025-10-24  9:12 ` Alice Ryhl
2025-10-24 13:45   ` Yury Norov
2025-10-24 13:54     ` Alice Ryhl
2026-03-24 13:57 ` Christophe Leroy (CS GROUP)

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.