All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: kbuild-all@lists.01.org
Subject: Re: arch/arm/kernel/sys_oabi-compat.c:257:6: error: implicit declaration of function 'ep_op_has_event'
Date: Thu, 18 Feb 2021 10:16:48 +0000	[thread overview]
Message-ID: <20210218101647.GH1463@shell.armlinux.org.uk> (raw)
In-Reply-To: <8f742b7a-2d8e-8956-ac89-ca8f32e3359f@infradead.org>

[-- Attachment #1: Type: text/plain, Size: 14212 bytes --]

On Wed, Feb 17, 2021 at 09:56:08PM -0800, Randy Dunlap wrote:
> On 2/17/21 9:26 PM, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head:   f40ddce88593482919761f74910f42f4b84c004b
> > commit: c281634c865202e2776b0250678ff93c771947ff ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
> > date:   10 months ago
> > config: arm-randconfig-m031-20210218 (attached as .config)
> > compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
> > reproduce (this is a W=1 build):
> >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c281634c865202e2776b0250678ff93c771947ff
> >         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> >         git fetch --no-tags linus master
> >         git checkout c281634c865202e2776b0250678ff93c771947ff
> >         # save the attached .config to linux build tree
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 
> > 
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> > 
> > All errors (new ones prefixed by >>):
> > 
> >    arch/arm/kernel/sys_oabi-compat.c:142:17: warning: no previous prototype for 'sys_oabi_stat64' [-Wmissing-prototypes]
> >      142 | asmlinkage long sys_oabi_stat64(const char __user * filename,
> >          |                 ^~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:152:17: warning: no previous prototype for 'sys_oabi_lstat64' [-Wmissing-prototypes]
> >      152 | asmlinkage long sys_oabi_lstat64(const char __user * filename,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:162:17: warning: no previous prototype for 'sys_oabi_fstat64' [-Wmissing-prototypes]
> >      162 | asmlinkage long sys_oabi_fstat64(unsigned long fd,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:172:17: warning: no previous prototype for 'sys_oabi_fstatat64' [-Wmissing-prototypes]
> >      172 | asmlinkage long sys_oabi_fstatat64(int dfd,
> >          |                 ^~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:229:17: warning: no previous prototype for 'sys_oabi_fcntl64' [-Wmissing-prototypes]
> >      229 | asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:251:17: warning: no previous prototype for 'sys_oabi_epoll_ctl' [-Wmissing-prototypes]
> >      251 | asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
> >          |                 ^~~~~~~~~~~~~~~~~~
> >    In file included from include/linux/kernel.h:11,
> >                     from include/linux/list.h:9,
> >                     from include/linux/wait.h:7,
> >                     from include/linux/wait_bit.h:8,
> >                     from include/linux/fs.h:6,
> >                     from include/uapi/linux/aio_abi.h:31,
> >                     from include/linux/syscalls.h:74,
> >                     from arch/arm/kernel/sys_oabi-compat.c:73:
> >    arch/arm/kernel/sys_oabi-compat.c: In function 'sys_oabi_epoll_ctl':
> >>> arch/arm/kernel/sys_oabi-compat.c:257:6: error: implicit declaration of function 'ep_op_has_event' [-Werror=implicit-function-declaration]
> >      257 |  if (ep_op_has_event(op) &&
> >          |      ^~~~~~~~~~~~~~~
> >    include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
> >       58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
> >          |                                                    ^~~~
> >    arch/arm/kernel/sys_oabi-compat.c:257:2: note: in expansion of macro 'if'
> >      257 |  if (ep_op_has_event(op) &&
> >          |  ^~
> >>> arch/arm/kernel/sys_oabi-compat.c:264:9: error: implicit declaration of function 'do_epoll_ctl'; did you mean 'sys_epoll_ctl'? [-Werror=implicit-function-declaration]
> >      264 |  return do_epoll_ctl(epfd, op, fd, &kernel, false);
> >          |         ^~~~~~~~~~~~
> >          |         sys_epoll_ctl
> >    arch/arm/kernel/sys_oabi-compat.c: At top level:
> >    arch/arm/kernel/sys_oabi-compat.c:267:17: warning: no previous prototype for 'sys_oabi_epoll_wait' [-Wmissing-prototypes]
> >      267 | asmlinkage long sys_oabi_epoll_wait(int epfd,
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:309:17: warning: no previous prototype for 'sys_oabi_semtimedop' [-Wmissing-prototypes]
> >      309 | asmlinkage long sys_oabi_semtimedop(int semid,
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:352:17: warning: no previous prototype for 'sys_oabi_semop' [-Wmissing-prototypes]
> >      352 | asmlinkage long sys_oabi_semop(int semid, struct oabi_sembuf __user *tsops,
> >          |                 ^~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:358:16: warning: no previous prototype for 'sys_oabi_ipc' [-Wmissing-prototypes]
> >      358 | asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third,
> >          |                ^~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:376:17: warning: no previous prototype for 'sys_oabi_bind' [-Wmissing-prototypes]
> >      376 | asmlinkage long sys_oabi_bind(int fd, struct sockaddr __user *addr, int addrlen)
> >          |                 ^~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:386:17: warning: no previous prototype for 'sys_oabi_connect' [-Wmissing-prototypes]
> >      386 | asmlinkage long sys_oabi_connect(int fd, struct sockaddr __user *addr, int addrlen)
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:396:17: warning: no previous prototype for 'sys_oabi_sendto' [-Wmissing-prototypes]
> >      396 | asmlinkage long sys_oabi_sendto(int fd, void __user *buff,
> >          |                 ^~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:409:17: warning: no previous prototype for 'sys_oabi_sendmsg' [-Wmissing-prototypes]
> >      409 | asmlinkage long sys_oabi_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags)
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:435:17: warning: no previous prototype for 'sys_oabi_socketcall' [-Wmissing-prototypes]
> >      435 | asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args)
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    cc1: some warnings being treated as errors
> > 
> > 
> > vim +/ep_op_has_event +257 arch/arm/kernel/sys_oabi-compat.c
> > 
> >   > 73	#include <linux/syscalls.h>
> >     74	#include <linux/errno.h>
> >     75	#include <linux/fs.h>
> >     76	#include <linux/cred.h>
> >     77	#include <linux/fcntl.h>
> >     78	#include <linux/eventpoll.h>
> >     79	#include <linux/sem.h>
> >     80	#include <linux/socket.h>
> >     81	#include <linux/net.h>
> >     82	#include <linux/ipc.h>
> >     83	#include <linux/uaccess.h>
> >     84	#include <linux/slab.h>
> >     85	
> >     86	struct oldabi_stat64 {
> >     87		unsigned long long st_dev;
> >     88		unsigned int	__pad1;
> >     89		unsigned long	__st_ino;
> >     90		unsigned int	st_mode;
> >     91		unsigned int	st_nlink;
> >     92	
> >     93		unsigned long	st_uid;
> >     94		unsigned long	st_gid;
> >     95	
> >     96		unsigned long long st_rdev;
> >     97		unsigned int	__pad2;
> >     98	
> >     99		long long	st_size;
> >    100		unsigned long	st_blksize;
> >    101		unsigned long long st_blocks;
> >    102	
> >    103		unsigned long	st_atime;
> >    104		unsigned long	st_atime_nsec;
> >    105	
> >    106		unsigned long	st_mtime;
> >    107		unsigned long	st_mtime_nsec;
> >    108	
> >    109		unsigned long	st_ctime;
> >    110		unsigned long	st_ctime_nsec;
> >    111	
> >    112		unsigned long long st_ino;
> >    113	} __attribute__ ((packed,aligned(4)));
> >    114	
> >    115	static long cp_oldabi_stat64(struct kstat *stat,
> >    116				     struct oldabi_stat64 __user *statbuf)
> >    117	{
> >    118		struct oldabi_stat64 tmp;
> >    119	
> >    120		tmp.st_dev = huge_encode_dev(stat->dev);
> >    121		tmp.__pad1 = 0;
> >    122		tmp.__st_ino = stat->ino;
> >    123		tmp.st_mode = stat->mode;
> >    124		tmp.st_nlink = stat->nlink;
> >    125		tmp.st_uid = from_kuid_munged(current_user_ns(), stat->uid);
> >    126		tmp.st_gid = from_kgid_munged(current_user_ns(), stat->gid);
> >    127		tmp.st_rdev = huge_encode_dev(stat->rdev);
> >    128		tmp.st_size = stat->size;
> >    129		tmp.st_blocks = stat->blocks;
> >    130		tmp.__pad2 = 0;
> >    131		tmp.st_blksize = stat->blksize;
> >    132		tmp.st_atime = stat->atime.tv_sec;
> >    133		tmp.st_atime_nsec = stat->atime.tv_nsec;
> >    134		tmp.st_mtime = stat->mtime.tv_sec;
> >    135		tmp.st_mtime_nsec = stat->mtime.tv_nsec;
> >    136		tmp.st_ctime = stat->ctime.tv_sec;
> >    137		tmp.st_ctime_nsec = stat->ctime.tv_nsec;
> >    138		tmp.st_ino = stat->ino;
> >    139		return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
> >    140	}
> >    141	
> >    142	asmlinkage long sys_oabi_stat64(const char __user * filename,
> >    143					struct oldabi_stat64 __user * statbuf)
> >    144	{
> >    145		struct kstat stat;
> >    146		int error = vfs_stat(filename, &stat);
> >    147		if (!error)
> >    148			error = cp_oldabi_stat64(&stat, statbuf);
> >    149		return error;
> >    150	}
> >    151	
> >    152	asmlinkage long sys_oabi_lstat64(const char __user * filename,
> >    153					 struct oldabi_stat64 __user * statbuf)
> >    154	{
> >    155		struct kstat stat;
> >    156		int error = vfs_lstat(filename, &stat);
> >    157		if (!error)
> >    158			error = cp_oldabi_stat64(&stat, statbuf);
> >    159		return error;
> >    160	}
> >    161	
> >    162	asmlinkage long sys_oabi_fstat64(unsigned long fd,
> >    163					 struct oldabi_stat64 __user * statbuf)
> >    164	{
> >    165		struct kstat stat;
> >    166		int error = vfs_fstat(fd, &stat);
> >    167		if (!error)
> >    168			error = cp_oldabi_stat64(&stat, statbuf);
> >    169		return error;
> >    170	}
> >    171	
> >    172	asmlinkage long sys_oabi_fstatat64(int dfd,
> >    173					   const char __user *filename,
> >    174					   struct oldabi_stat64  __user *statbuf,
> >    175					   int flag)
> >    176	{
> >    177		struct kstat stat;
> >    178		int error;
> >    179	
> >    180		error = vfs_fstatat(dfd, filename, &stat, flag);
> >    181		if (error)
> >    182			return error;
> >    183		return cp_oldabi_stat64(&stat, statbuf);
> >    184	}
> >    185	
> >    186	struct oabi_flock64 {
> >    187		short	l_type;
> >    188		short	l_whence;
> >    189		loff_t	l_start;
> >    190		loff_t	l_len;
> >    191		pid_t	l_pid;
> >    192	} __attribute__ ((packed,aligned(4)));
> >    193	
> >    194	static long do_locks(unsigned int fd, unsigned int cmd,
> >    195					 unsigned long arg)
> >    196	{
> >    197		struct flock64 kernel;
> >    198		struct oabi_flock64 user;
> >    199		mm_segment_t fs;
> >    200		long ret;
> >    201	
> >    202		if (copy_from_user(&user, (struct oabi_flock64 __user *)arg,
> >    203				   sizeof(user)))
> >    204			return -EFAULT;
> >    205		kernel.l_type	= user.l_type;
> >    206		kernel.l_whence	= user.l_whence;
> >    207		kernel.l_start	= user.l_start;
> >    208		kernel.l_len	= user.l_len;
> >    209		kernel.l_pid	= user.l_pid;
> >    210	
> >    211		fs = get_fs();
> >    212		set_fs(KERNEL_DS);
> >    213		ret = sys_fcntl64(fd, cmd, (unsigned long)&kernel);
> >    214		set_fs(fs);
> >    215	
> >    216		if (!ret && (cmd == F_GETLK64 || cmd == F_OFD_GETLK)) {
> >    217			user.l_type	= kernel.l_type;
> >    218			user.l_whence	= kernel.l_whence;
> >    219			user.l_start	= kernel.l_start;
> >    220			user.l_len	= kernel.l_len;
> >    221			user.l_pid	= kernel.l_pid;
> >    222			if (copy_to_user((struct oabi_flock64 __user *)arg,
> >    223					 &user, sizeof(user)))
> >    224				ret = -EFAULT;
> >    225		}
> >    226		return ret;
> >    227	}
> >    228	
> >    229	asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
> >    230					 unsigned long arg)
> >    231	{
> >    232		switch (cmd) {
> >    233		case F_OFD_GETLK:
> >    234		case F_OFD_SETLK:
> >    235		case F_OFD_SETLKW:
> >    236		case F_GETLK64:
> >    237		case F_SETLK64:
> >    238		case F_SETLKW64:
> >    239			return do_locks(fd, cmd, arg);
> >    240	
> >    241		default:
> >    242			return sys_fcntl64(fd, cmd, arg);
> >    243		}
> >    244	}
> >    245	
> >    246	struct oabi_epoll_event {
> >    247		__u32 events;
> >    248		__u64 data;
> >    249	} __attribute__ ((packed,aligned(4)));
> >    250	
> >    251	asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
> >    252					   struct oabi_epoll_event __user *event)
> >    253	{
> >    254		struct oabi_epoll_event user;
> >    255		struct epoll_event kernel;
> >    256	
> >  > 257		if (ep_op_has_event(op) &&
> >    258		    copy_from_user(&user, event, sizeof(user)))
> >    259			return -EFAULT;
> >    260	
> >    261		kernel.events = user.events;
> >    262		kernel.data   = user.data;
> >    263	
> >  > 264		return do_epoll_ctl(epfd, op, fd, &kernel, false);
> >    265	}
> >    266	
> > 
> > ---
> > 0-DAY CI Kernel Test Service, Intel Corporation
> > https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
> 
> I sent a patch for this on 2021-JAN-14.
> 
> Russell?

I probably forgot about it as it was only emailed on the mailing list,
and as it wasn't in my patch system.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: kernel test robot <lkp@intel.com>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@lst.de>
Subject: Re: arch/arm/kernel/sys_oabi-compat.c:257:6: error: implicit declaration of function 'ep_op_has_event'
Date: Thu, 18 Feb 2021 10:16:48 +0000	[thread overview]
Message-ID: <20210218101647.GH1463@shell.armlinux.org.uk> (raw)
In-Reply-To: <8f742b7a-2d8e-8956-ac89-ca8f32e3359f@infradead.org>

On Wed, Feb 17, 2021 at 09:56:08PM -0800, Randy Dunlap wrote:
> On 2/17/21 9:26 PM, kernel test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head:   f40ddce88593482919761f74910f42f4b84c004b
> > commit: c281634c865202e2776b0250678ff93c771947ff ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
> > date:   10 months ago
> > config: arm-randconfig-m031-20210218 (attached as .config)
> > compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
> > reproduce (this is a W=1 build):
> >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c281634c865202e2776b0250678ff93c771947ff
> >         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> >         git fetch --no-tags linus master
> >         git checkout c281634c865202e2776b0250678ff93c771947ff
> >         # save the attached .config to linux build tree
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 
> > 
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> > 
> > All errors (new ones prefixed by >>):
> > 
> >    arch/arm/kernel/sys_oabi-compat.c:142:17: warning: no previous prototype for 'sys_oabi_stat64' [-Wmissing-prototypes]
> >      142 | asmlinkage long sys_oabi_stat64(const char __user * filename,
> >          |                 ^~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:152:17: warning: no previous prototype for 'sys_oabi_lstat64' [-Wmissing-prototypes]
> >      152 | asmlinkage long sys_oabi_lstat64(const char __user * filename,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:162:17: warning: no previous prototype for 'sys_oabi_fstat64' [-Wmissing-prototypes]
> >      162 | asmlinkage long sys_oabi_fstat64(unsigned long fd,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:172:17: warning: no previous prototype for 'sys_oabi_fstatat64' [-Wmissing-prototypes]
> >      172 | asmlinkage long sys_oabi_fstatat64(int dfd,
> >          |                 ^~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:229:17: warning: no previous prototype for 'sys_oabi_fcntl64' [-Wmissing-prototypes]
> >      229 | asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:251:17: warning: no previous prototype for 'sys_oabi_epoll_ctl' [-Wmissing-prototypes]
> >      251 | asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
> >          |                 ^~~~~~~~~~~~~~~~~~
> >    In file included from include/linux/kernel.h:11,
> >                     from include/linux/list.h:9,
> >                     from include/linux/wait.h:7,
> >                     from include/linux/wait_bit.h:8,
> >                     from include/linux/fs.h:6,
> >                     from include/uapi/linux/aio_abi.h:31,
> >                     from include/linux/syscalls.h:74,
> >                     from arch/arm/kernel/sys_oabi-compat.c:73:
> >    arch/arm/kernel/sys_oabi-compat.c: In function 'sys_oabi_epoll_ctl':
> >>> arch/arm/kernel/sys_oabi-compat.c:257:6: error: implicit declaration of function 'ep_op_has_event' [-Werror=implicit-function-declaration]
> >      257 |  if (ep_op_has_event(op) &&
> >          |      ^~~~~~~~~~~~~~~
> >    include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
> >       58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
> >          |                                                    ^~~~
> >    arch/arm/kernel/sys_oabi-compat.c:257:2: note: in expansion of macro 'if'
> >      257 |  if (ep_op_has_event(op) &&
> >          |  ^~
> >>> arch/arm/kernel/sys_oabi-compat.c:264:9: error: implicit declaration of function 'do_epoll_ctl'; did you mean 'sys_epoll_ctl'? [-Werror=implicit-function-declaration]
> >      264 |  return do_epoll_ctl(epfd, op, fd, &kernel, false);
> >          |         ^~~~~~~~~~~~
> >          |         sys_epoll_ctl
> >    arch/arm/kernel/sys_oabi-compat.c: At top level:
> >    arch/arm/kernel/sys_oabi-compat.c:267:17: warning: no previous prototype for 'sys_oabi_epoll_wait' [-Wmissing-prototypes]
> >      267 | asmlinkage long sys_oabi_epoll_wait(int epfd,
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:309:17: warning: no previous prototype for 'sys_oabi_semtimedop' [-Wmissing-prototypes]
> >      309 | asmlinkage long sys_oabi_semtimedop(int semid,
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:352:17: warning: no previous prototype for 'sys_oabi_semop' [-Wmissing-prototypes]
> >      352 | asmlinkage long sys_oabi_semop(int semid, struct oabi_sembuf __user *tsops,
> >          |                 ^~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:358:16: warning: no previous prototype for 'sys_oabi_ipc' [-Wmissing-prototypes]
> >      358 | asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third,
> >          |                ^~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:376:17: warning: no previous prototype for 'sys_oabi_bind' [-Wmissing-prototypes]
> >      376 | asmlinkage long sys_oabi_bind(int fd, struct sockaddr __user *addr, int addrlen)
> >          |                 ^~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:386:17: warning: no previous prototype for 'sys_oabi_connect' [-Wmissing-prototypes]
> >      386 | asmlinkage long sys_oabi_connect(int fd, struct sockaddr __user *addr, int addrlen)
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:396:17: warning: no previous prototype for 'sys_oabi_sendto' [-Wmissing-prototypes]
> >      396 | asmlinkage long sys_oabi_sendto(int fd, void __user *buff,
> >          |                 ^~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:409:17: warning: no previous prototype for 'sys_oabi_sendmsg' [-Wmissing-prototypes]
> >      409 | asmlinkage long sys_oabi_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags)
> >          |                 ^~~~~~~~~~~~~~~~
> >    arch/arm/kernel/sys_oabi-compat.c:435:17: warning: no previous prototype for 'sys_oabi_socketcall' [-Wmissing-prototypes]
> >      435 | asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args)
> >          |                 ^~~~~~~~~~~~~~~~~~~
> >    cc1: some warnings being treated as errors
> > 
> > 
> > vim +/ep_op_has_event +257 arch/arm/kernel/sys_oabi-compat.c
> > 
> >   > 73	#include <linux/syscalls.h>
> >     74	#include <linux/errno.h>
> >     75	#include <linux/fs.h>
> >     76	#include <linux/cred.h>
> >     77	#include <linux/fcntl.h>
> >     78	#include <linux/eventpoll.h>
> >     79	#include <linux/sem.h>
> >     80	#include <linux/socket.h>
> >     81	#include <linux/net.h>
> >     82	#include <linux/ipc.h>
> >     83	#include <linux/uaccess.h>
> >     84	#include <linux/slab.h>
> >     85	
> >     86	struct oldabi_stat64 {
> >     87		unsigned long long st_dev;
> >     88		unsigned int	__pad1;
> >     89		unsigned long	__st_ino;
> >     90		unsigned int	st_mode;
> >     91		unsigned int	st_nlink;
> >     92	
> >     93		unsigned long	st_uid;
> >     94		unsigned long	st_gid;
> >     95	
> >     96		unsigned long long st_rdev;
> >     97		unsigned int	__pad2;
> >     98	
> >     99		long long	st_size;
> >    100		unsigned long	st_blksize;
> >    101		unsigned long long st_blocks;
> >    102	
> >    103		unsigned long	st_atime;
> >    104		unsigned long	st_atime_nsec;
> >    105	
> >    106		unsigned long	st_mtime;
> >    107		unsigned long	st_mtime_nsec;
> >    108	
> >    109		unsigned long	st_ctime;
> >    110		unsigned long	st_ctime_nsec;
> >    111	
> >    112		unsigned long long st_ino;
> >    113	} __attribute__ ((packed,aligned(4)));
> >    114	
> >    115	static long cp_oldabi_stat64(struct kstat *stat,
> >    116				     struct oldabi_stat64 __user *statbuf)
> >    117	{
> >    118		struct oldabi_stat64 tmp;
> >    119	
> >    120		tmp.st_dev = huge_encode_dev(stat->dev);
> >    121		tmp.__pad1 = 0;
> >    122		tmp.__st_ino = stat->ino;
> >    123		tmp.st_mode = stat->mode;
> >    124		tmp.st_nlink = stat->nlink;
> >    125		tmp.st_uid = from_kuid_munged(current_user_ns(), stat->uid);
> >    126		tmp.st_gid = from_kgid_munged(current_user_ns(), stat->gid);
> >    127		tmp.st_rdev = huge_encode_dev(stat->rdev);
> >    128		tmp.st_size = stat->size;
> >    129		tmp.st_blocks = stat->blocks;
> >    130		tmp.__pad2 = 0;
> >    131		tmp.st_blksize = stat->blksize;
> >    132		tmp.st_atime = stat->atime.tv_sec;
> >    133		tmp.st_atime_nsec = stat->atime.tv_nsec;
> >    134		tmp.st_mtime = stat->mtime.tv_sec;
> >    135		tmp.st_mtime_nsec = stat->mtime.tv_nsec;
> >    136		tmp.st_ctime = stat->ctime.tv_sec;
> >    137		tmp.st_ctime_nsec = stat->ctime.tv_nsec;
> >    138		tmp.st_ino = stat->ino;
> >    139		return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
> >    140	}
> >    141	
> >    142	asmlinkage long sys_oabi_stat64(const char __user * filename,
> >    143					struct oldabi_stat64 __user * statbuf)
> >    144	{
> >    145		struct kstat stat;
> >    146		int error = vfs_stat(filename, &stat);
> >    147		if (!error)
> >    148			error = cp_oldabi_stat64(&stat, statbuf);
> >    149		return error;
> >    150	}
> >    151	
> >    152	asmlinkage long sys_oabi_lstat64(const char __user * filename,
> >    153					 struct oldabi_stat64 __user * statbuf)
> >    154	{
> >    155		struct kstat stat;
> >    156		int error = vfs_lstat(filename, &stat);
> >    157		if (!error)
> >    158			error = cp_oldabi_stat64(&stat, statbuf);
> >    159		return error;
> >    160	}
> >    161	
> >    162	asmlinkage long sys_oabi_fstat64(unsigned long fd,
> >    163					 struct oldabi_stat64 __user * statbuf)
> >    164	{
> >    165		struct kstat stat;
> >    166		int error = vfs_fstat(fd, &stat);
> >    167		if (!error)
> >    168			error = cp_oldabi_stat64(&stat, statbuf);
> >    169		return error;
> >    170	}
> >    171	
> >    172	asmlinkage long sys_oabi_fstatat64(int dfd,
> >    173					   const char __user *filename,
> >    174					   struct oldabi_stat64  __user *statbuf,
> >    175					   int flag)
> >    176	{
> >    177		struct kstat stat;
> >    178		int error;
> >    179	
> >    180		error = vfs_fstatat(dfd, filename, &stat, flag);
> >    181		if (error)
> >    182			return error;
> >    183		return cp_oldabi_stat64(&stat, statbuf);
> >    184	}
> >    185	
> >    186	struct oabi_flock64 {
> >    187		short	l_type;
> >    188		short	l_whence;
> >    189		loff_t	l_start;
> >    190		loff_t	l_len;
> >    191		pid_t	l_pid;
> >    192	} __attribute__ ((packed,aligned(4)));
> >    193	
> >    194	static long do_locks(unsigned int fd, unsigned int cmd,
> >    195					 unsigned long arg)
> >    196	{
> >    197		struct flock64 kernel;
> >    198		struct oabi_flock64 user;
> >    199		mm_segment_t fs;
> >    200		long ret;
> >    201	
> >    202		if (copy_from_user(&user, (struct oabi_flock64 __user *)arg,
> >    203				   sizeof(user)))
> >    204			return -EFAULT;
> >    205		kernel.l_type	= user.l_type;
> >    206		kernel.l_whence	= user.l_whence;
> >    207		kernel.l_start	= user.l_start;
> >    208		kernel.l_len	= user.l_len;
> >    209		kernel.l_pid	= user.l_pid;
> >    210	
> >    211		fs = get_fs();
> >    212		set_fs(KERNEL_DS);
> >    213		ret = sys_fcntl64(fd, cmd, (unsigned long)&kernel);
> >    214		set_fs(fs);
> >    215	
> >    216		if (!ret && (cmd == F_GETLK64 || cmd == F_OFD_GETLK)) {
> >    217			user.l_type	= kernel.l_type;
> >    218			user.l_whence	= kernel.l_whence;
> >    219			user.l_start	= kernel.l_start;
> >    220			user.l_len	= kernel.l_len;
> >    221			user.l_pid	= kernel.l_pid;
> >    222			if (copy_to_user((struct oabi_flock64 __user *)arg,
> >    223					 &user, sizeof(user)))
> >    224				ret = -EFAULT;
> >    225		}
> >    226		return ret;
> >    227	}
> >    228	
> >    229	asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
> >    230					 unsigned long arg)
> >    231	{
> >    232		switch (cmd) {
> >    233		case F_OFD_GETLK:
> >    234		case F_OFD_SETLK:
> >    235		case F_OFD_SETLKW:
> >    236		case F_GETLK64:
> >    237		case F_SETLK64:
> >    238		case F_SETLKW64:
> >    239			return do_locks(fd, cmd, arg);
> >    240	
> >    241		default:
> >    242			return sys_fcntl64(fd, cmd, arg);
> >    243		}
> >    244	}
> >    245	
> >    246	struct oabi_epoll_event {
> >    247		__u32 events;
> >    248		__u64 data;
> >    249	} __attribute__ ((packed,aligned(4)));
> >    250	
> >    251	asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
> >    252					   struct oabi_epoll_event __user *event)
> >    253	{
> >    254		struct oabi_epoll_event user;
> >    255		struct epoll_event kernel;
> >    256	
> >  > 257		if (ep_op_has_event(op) &&
> >    258		    copy_from_user(&user, event, sizeof(user)))
> >    259			return -EFAULT;
> >    260	
> >    261		kernel.events = user.events;
> >    262		kernel.data   = user.data;
> >    263	
> >  > 264		return do_epoll_ctl(epfd, op, fd, &kernel, false);
> >    265	}
> >    266	
> > 
> > ---
> > 0-DAY CI Kernel Test Service, Intel Corporation
> > https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> 
> I sent a patch for this on 2021-JAN-14.
> 
> Russell?

I probably forgot about it as it was only emailed on the mailing list,
and as it wasn't in my patch system.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2021-02-18 10:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-18  5:26 arch/arm/kernel/sys_oabi-compat.c:257:6: error: implicit declaration of function 'ep_op_has_event' kernel test robot
2021-02-18  5:26 ` kernel test robot
2021-02-18  5:56 ` Randy Dunlap
2021-02-18  5:56   ` Randy Dunlap
2021-02-18 10:16   ` Russell King - ARM Linux admin [this message]
2021-02-18 10:16     ` Russell King - ARM Linux admin
  -- strict thread matches above, loose matches on Subject: below --
2021-02-20  5:09 kernel test robot
2021-02-20  5:09 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210218101647.GH1463@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.