[ Upstream commit 0e358bd7b7ebd27e491dabed938eae254c17fe3b ]

Although a syscall defined using SYSCALL_DEFINE0 doesn't accept
parameters, use the correct function type to avoid indirect call
type mismatches with Control-Flow Integrity checking.

Signed-off-by: Sami Tolvanen <samitolva...@google.com>
Signed-off-by: Will Deacon <will.dea...@arm.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 arch/arm64/include/asm/syscall_wrapper.h | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/arm64/include/asm/syscall_wrapper.h 
b/arch/arm64/include/asm/syscall_wrapper.h
index a4477e515b79..507d0ee6bc69 100644
--- a/arch/arm64/include/asm/syscall_wrapper.h
+++ b/arch/arm64/include/asm/syscall_wrapper.h
@@ -30,10 +30,10 @@
        }                                                                       
        \
        static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 
-#define COMPAT_SYSCALL_DEFINE0(sname)                                  \
-       asmlinkage long __arm64_compat_sys_##sname(void);               \
-       ALLOW_ERROR_INJECTION(__arm64_compat_sys_##sname, ERRNO);       \
-       asmlinkage long __arm64_compat_sys_##sname(void)
+#define COMPAT_SYSCALL_DEFINE0(sname)                                          
        \
+       asmlinkage long __arm64_compat_sys_##sname(const struct pt_regs 
*__unused);     \
+       ALLOW_ERROR_INJECTION(__arm64_compat_sys_##sname, ERRNO);               
        \
+       asmlinkage long __arm64_compat_sys_##sname(const struct pt_regs 
*__unused)
 
 #define COND_SYSCALL_COMPAT(name) \
        cond_syscall(__arm64_compat_sys_##name);
@@ -62,11 +62,11 @@
        static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
 
 #ifndef SYSCALL_DEFINE0
-#define SYSCALL_DEFINE0(sname)                                 \
-       SYSCALL_METADATA(_##sname, 0);                          \
-       asmlinkage long __arm64_sys_##sname(void);              \
-       ALLOW_ERROR_INJECTION(__arm64_sys_##sname, ERRNO);      \
-       asmlinkage long __arm64_sys_##sname(void)
+#define SYSCALL_DEFINE0(sname)                                                 
\
+       SYSCALL_METADATA(_##sname, 0);                                          
\
+       asmlinkage long __arm64_sys_##sname(const struct pt_regs *__unused);    
\
+       ALLOW_ERROR_INJECTION(__arm64_sys_##sname, ERRNO);                      
\
+       asmlinkage long __arm64_sys_##sname(const struct pt_regs *__unused)
 #endif
 
 #ifndef COND_SYSCALL
-- 
2.20.1



Reply via email to