mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 12:53:14 +01:00
uaccess: decouple INLINE_COPY_FROM_USER and CONFIG_RUST
Commit 1f9a8286bc ("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.
[[email protected]: drop rust part of comment for _copy_from_user(), per Alice]
Link: https://lkml.kernel.org/r/[email protected]
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Yury Norov (NVIDIA) <[email protected]>
Acked-by: Arnd Bergmann <[email protected]>
Acked-by: Miguel Ojeda <[email protected]>
Reviewed-by: Alice Ryhl <[email protected]>
Tested-by: Alice Ryhl <[email protected]>
Cc: Alex Gaynor <[email protected]>
Cc: Andreas Hindborg <[email protected]>
Cc: Björn Roy Baron <[email protected]>
Cc: Boqun Feng <[email protected]>
Cc: Danilo Krummrich <[email protected]>
Cc: Gary Guo <[email protected]>
Cc: John Hubbard <[email protected]>
Cc: Trevor Gross <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
This commit is contained in:
1 parent
032a730268
commit
d99dc586ca
3 files changed
+14
-4
No files matched your search
@@ -152,8 +152,6 @@ __copy_to_user(void __user *to, const void *from, unsigned long n)
|
||||
* directly in the normal copy_to/from_user(), the other ones go
|
||||
* through an extern _copy_to/from_user(), which expands the same code
|
||||
* here.
|
||||
*
|
||||
* Rust code always uses the extern definition.
|
||||
*/
|
||||
static inline __must_check unsigned long
|
||||
_inline_copy_from_user(void *to, const void __user *from, unsigned long n)
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
@@ -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
|
||||
Reference in new issue
Block a user