2024-04-23 11:49:31

by Tiwei Bie

[permalink] [raw]
Subject: [PATCH 0/7] um: A follow-up series of -Wmissing-prototypes fixes

This is a follow-up series built on top of below series:
https://lore.kernel.org/linux-um/[email protected]/

Tiwei Bie (7):
um: Fix -Wmissing-prototypes warnings for (rt_)sigreturn
um: Fix the -Wmissing-prototypes warning for __switch_mm
um: Fix the -Wmissing-prototypes warning for get_thread_reg
um: Fix the declaration of kasan_map_memory
um: Add an internal header shared among the user code
um: Fix -Wmissing-prototypes warnings for __vdso_*
um: Remove unused do_get_thread_area function

arch/um/include/asm/kasan.h | 1 -
arch/um/include/asm/mmu.h | 2 --
arch/um/include/asm/processor-generic.h | 1 -
arch/um/include/shared/kern_util.h | 2 ++
arch/um/include/shared/skas/mm_id.h | 2 ++
arch/um/os-Linux/internal.h | 20 ++++++++++++++++++++
arch/um/os-Linux/main.c | 2 --
arch/um/os-Linux/mem.c | 1 +
arch/um/os-Linux/skas/mem.c | 2 --
arch/um/os-Linux/start_up.c | 2 --
arch/um/scripts/Makefile.rules | 3 ++-
arch/x86/um/shared/sysdep/archsetjmp.h | 7 +++++++
arch/x86/um/signal.c | 5 +++--
arch/x86/um/tls_32.c | 17 -----------------
arch/x86/um/vdso/um_vdso.c | 10 ++++++++--
15 files changed, 45 insertions(+), 32 deletions(-)
create mode 100644 arch/um/os-Linux/internal.h

--
2.34.1



2024-04-23 11:55:05

by Tiwei Bie

[permalink] [raw]
Subject: [PATCH 6/7] um: Fix -Wmissing-prototypes warnings for __vdso_*

The VDSO functions are defined as globals and intended to be called
from userspace. Let's just workaround the -Wmissing-prototypes warnings
by declaring them locally.

This will address below -Wmissing-prototypes warnings:

arch/x86/um/vdso/um_vdso.c:16:5: warning: no previous prototype for ‘__vdso_clock_gettime’ [-Wmissing-prototypes]
arch/x86/um/vdso/um_vdso.c:30:5: warning: no previous prototype for ‘__vdso_gettimeofday’ [-Wmissing-prototypes]
arch/x86/um/vdso/um_vdso.c:44:21: warning: no previous prototype for ‘__vdso_time’ [-Wmissing-prototypes]
arch/x86/um/vdso/um_vdso.c:57:1: warning: no previous prototype for ‘__vdso_getcpu’ [-Wmissing-prototypes]

Meanwhile, also fix the "WARNING: Prefer 'unsigned int *' to bare use
of 'unsigned *'" checkpatch warning.

Signed-off-by: Tiwei Bie <[email protected]>
---
arch/x86/um/vdso/um_vdso.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/x86/um/vdso/um_vdso.c b/arch/x86/um/vdso/um_vdso.c
index ff0f3b4b6c45..cbae2584124f 100644
--- a/arch/x86/um/vdso/um_vdso.c
+++ b/arch/x86/um/vdso/um_vdso.c
@@ -13,6 +13,12 @@
#include <linux/getcpu.h>
#include <asm/unistd.h>

+/* workaround for -Wmissing-prototypes warnings */
+int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts);
+int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz);
+__kernel_old_time_t __vdso_time(__kernel_old_time_t *t);
+long __vdso_getcpu(unsigned int *cpu, unsigned int *node, struct getcpu_cache *unused);
+
int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
{
long ret;
@@ -54,7 +60,7 @@ __kernel_old_time_t __vdso_time(__kernel_old_time_t *t)
__kernel_old_time_t time(__kernel_old_time_t *t) __attribute__((weak, alias("__vdso_time")));

long
-__vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
+__vdso_getcpu(unsigned int *cpu, unsigned int *node, struct getcpu_cache *unused)
{
/*
* UML does not support SMP, we can cheat here. :)
@@ -68,5 +74,5 @@ __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
return 0;
}

-long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache)
+long getcpu(unsigned int *cpu, unsigned int *node, struct getcpu_cache *tcache)
__attribute__((weak, alias("__vdso_getcpu")));
--
2.34.1