ARM: 9309/1: add missing syscall prototypes
All architecture-independent system calls have prototypes in include/linux/syscalls.h, but there are a few that only exist on arm or that take the pt_regs directly. These cause a W=1 warning such as: arch/arm/kernel/signal.c:186:16: error: no previous prototype for 'sys_sigreturn' [-Werror=missing-prototypes] arch/arm/kernel/signal.c:216:16: error: no previous prototype for 'sys_rt_sigreturn' [-Werror=missing-prototypes] arch/arm/kernel/sys_arm.c:32:17: error: no previous prototype for 'sys_arm_fadvise64_64' [-Werror=missing-prototypes] Add prototypes for all custom syscalls on arm and add them to asm/syscalls.h. Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
ad1cfe62b8
commit
be0796b07b
51
arch/arm/include/asm/syscalls.h
Normal file
51
arch/arm/include/asm/syscalls.h
Normal file
@ -0,0 +1,51 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef __ASM_SYSCALLS_H
|
||||
#define __ASM_SYSCALLS_H
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
struct pt_regs;
|
||||
asmlinkage int sys_sigreturn(struct pt_regs *regs);
|
||||
asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
|
||||
asmlinkage long sys_arm_fadvise64_64(int fd, int advice,
|
||||
loff_t offset, loff_t len);
|
||||
|
||||
struct oldabi_stat64;
|
||||
asmlinkage long sys_oabi_stat64(const char __user * filename,
|
||||
struct oldabi_stat64 __user * statbuf);
|
||||
asmlinkage long sys_oabi_lstat64(const char __user * filename,
|
||||
struct oldabi_stat64 __user * statbuf);
|
||||
asmlinkage long sys_oabi_fstat64(unsigned long fd,
|
||||
struct oldabi_stat64 __user * statbuf);
|
||||
asmlinkage long sys_oabi_fstatat64(int dfd,
|
||||
const char __user *filename,
|
||||
struct oldabi_stat64 __user *statbuf,
|
||||
int flag);
|
||||
asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
|
||||
unsigned long arg);
|
||||
struct oabi_epoll_event;
|
||||
asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
|
||||
struct oabi_epoll_event __user *event);
|
||||
struct oabi_sembuf;
|
||||
struct old_timespec32;
|
||||
asmlinkage long sys_oabi_semtimedop(int semid,
|
||||
struct oabi_sembuf __user *tsops,
|
||||
unsigned nsops,
|
||||
const struct old_timespec32 __user *timeout);
|
||||
asmlinkage long sys_oabi_semop(int semid, struct oabi_sembuf __user *tsops,
|
||||
unsigned nsops);
|
||||
asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third,
|
||||
void __user *ptr, long fifth);
|
||||
struct sockaddr;
|
||||
asmlinkage long sys_oabi_bind(int fd, struct sockaddr __user *addr, int addrlen);
|
||||
asmlinkage long sys_oabi_connect(int fd, struct sockaddr __user *addr, int addrlen);
|
||||
asmlinkage long sys_oabi_sendto(int fd, void __user *buff,
|
||||
size_t len, unsigned flags,
|
||||
struct sockaddr __user *addr,
|
||||
int addrlen);
|
||||
struct user_msghdr;
|
||||
asmlinkage long sys_oabi_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags);
|
||||
asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args);
|
||||
|
||||
#endif
|
@ -18,6 +18,7 @@
|
||||
#include <asm/traps.h>
|
||||
#include <asm/unistd.h>
|
||||
#include <asm/vfp.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
#include "signal.h"
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <linux/ipc.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/slab.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
/*
|
||||
* Since loff_t is a 64 bit type we avoid a lot of ABI hassle
|
||||
|
@ -10,6 +10,8 @@
|
||||
* Copyright: MontaVista Software, Inc.
|
||||
*/
|
||||
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
/*
|
||||
* The legacy ABI and the new ARM EABI have different rules making some
|
||||
* syscalls incompatible especially with structure arguments.
|
||||
|
Loading…
Reference in New Issue
Block a user