uaccess: gate _copy_[to|from]_user on !INLINE_COPY_FROM_USER
These methods only exist when INLINE_COPY_FROM_USER is disabled, so update
the header file to reflect that.
This fixes the following error on builds that enable both RUST and
INLINE_COPY_FROM_USER.
ERROR: modpost: "_copy_from_user" [samples/rust/rust_misc_device.ko] undefined!
ERROR: modpost: "_copy_to_user" [samples/rust/rust_misc_device.ko] undefined!
This error is triggered because when a method is available both as a
rust_helper_* and normal method, Rust will call the normal method.
[akpm@linux-foundation.org: s/INLINE_COPY_FROM_USER/INLINE_COPY_TO_USER/, per Alice]
Link: https://lkml.kernel.org/r/20251118173250.2821388-1-aliceryhl@google.com
Fixes: d99dc586ca ("uaccess: decouple INLINE_COPY_FROM_USER and CONFIG_RUST")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Gary Guo <gary@garyguo.net>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Trevor Gross <tmgross@umich.edu>
Cc: Yury Norov (NVIDIA) <yury.norov@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
aa0145563c
commit
9031b852c9
|
|
@ -181,8 +181,10 @@ fail:
|
|||
memset(to + (n - res), 0, res);
|
||||
return res;
|
||||
}
|
||||
#ifndef INLINE_COPY_FROM_USER
|
||||
extern __must_check unsigned long
|
||||
_copy_from_user(void *, const void __user *, unsigned long);
|
||||
#endif
|
||||
|
||||
static inline __must_check unsigned long
|
||||
_inline_copy_to_user(void __user *to, const void *from, unsigned long n)
|
||||
|
|
@ -196,8 +198,10 @@ _inline_copy_to_user(void __user *to, const void *from, unsigned long n)
|
|||
}
|
||||
return n;
|
||||
}
|
||||
#ifndef INLINE_COPY_TO_USER
|
||||
extern __must_check unsigned long
|
||||
_copy_to_user(void __user *, const void *, unsigned long);
|
||||
#endif
|
||||
|
||||
static __always_inline unsigned long __must_check
|
||||
copy_from_user(void *to, const void __user *from, unsigned long n)
|
||||
|
|
|
|||
Loading…
Reference in New Issue