diff options
author | Ben Dooks <ben-linux@fluff.org> | 2022-07-21 20:55:09 +0100 |
---|---|---|
committer | akpm <akpm@linux-foundation.org> | 2022-07-29 18:12:36 -0700 |
commit | 787dbea11a5d6843999ff71a3fb9aa1ed6d5d889 (patch) | |
tree | 8d66478e7d8d053c29a077300188fcd298f2d647 /kernel/profile.c | |
parent | 45ee6d1e935d879d86aebd1fd15afb3bc015c4a0 (diff) |
profile: setup_profiling_timer() is moslty not implemented
The setup_profiling_timer() is mostly un-implemented by many
architectures. In many places it isn't guarded by CONFIG_PROFILE which is
needed for it to be used. Make it a weak symbol in kernel/profile.c and
remove the 'return -EINVAL' implementations from the kenrel.
There are a couple of architectures which do return 0 from the
setup_profiling_timer() function but they don't seem to do anything else
with it. To keep the /proc compatibility for now, leave these for a
future update or removal.
On ARM, this fixes the following sparse warning:
arch/arm/kernel/smp.c:793:5: warning: symbol 'setup_profiling_timer' was not declared. Should it be static?
Link: https://lkml.kernel.org/r/20220721195509.418205-1-ben-linux@fluff.org
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'kernel/profile.c')
-rw-r--r-- | kernel/profile.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/profile.c b/kernel/profile.c index ae82ddfc6a68..7ea01ba30e75 100644 --- a/kernel/profile.c +++ b/kernel/profile.c @@ -425,6 +425,12 @@ read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos) return read; } +/* default is to not implement this call */ +int __weak setup_profiling_timer(unsigned mult) +{ + return -EINVAL; +} + /* * Writing to /proc/profile resets the counters * @@ -435,8 +441,6 @@ static ssize_t write_profile(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { #ifdef CONFIG_SMP - extern int setup_profiling_timer(unsigned int multiplier); - if (count == sizeof(int)) { unsigned int multiplier; |