Clean up sys_ioperm stubs
PATCH 1/1 Clean up sys_ioperm stubs
Remove stubs for sys_ioperm for non-x86 arches, using sys_ni_syscall instead where applicable.
PS. Can we nuke the KDADDIO etc. ioctls in drivers/char/vt_ioctl.c? They apparently were used by ancient versions of X, but nothing should be using them now, considering they are limited to the VGA ports only (I also checked svgalib).
--
Brian Gerst
arch/h8300/kernel/syscalls.S +1 -1
@@ -116,7 +116,7 @@ .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */ .long SYMBOL_NAME(sys_statfs) .long SYMBOL_NAME(sys_fstatfs) /* 100 */ - .long SYMBOL_NAME(sys_ioperm) + .long SYMBOL_NAME(sys_ni_syscall) /* ioperm for i386 */ .long SYMBOL_NAME(sys_socketcall) .long SYMBOL_NAME(sys_syslog) .long SYMBOL_NAME(sys_setitimer)
arch/h8300/kernel/sys_h8300.c +0 -5
@@ -260,11 +260,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} -/* sys_cacheflush -- no support. */ asmlinkage intsys_cacheflush (unsigned long addr,int scope,int cache,unsigned long len)
arch/m68k/kernel/entry.S +1 -1
@@ -528,7 +528,7 @@ .long sys_ni_syscall /* old profil syscall holder */ .long sys_statfs .long sys_fstatfs /* 100 */ - .long sys_ioperm + .long sys_ni_syscall /* ioperm for i386 */ .long sys_socketcall .long sys_syslog .long sys_setitimer
arch/m68k/kernel/sys_m68k.c +0 -6
@@ -261,12 +261,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} - -/* Convert virtual (user) address VADDR to physical address PADDR */ #define virt_to_phys_040 (vaddr) \ ({ \
arch/m68knommu/kernel/syscalltable.S +1 -1
@@ -120,7 +120,7 @@ .long sys_ni_syscall /* old profil syscall holder */ .long sys_statfs .long sys_fstatfs /* 100 */ - .long sys_ioperm + .long sys_ni_syscall /* ioperm for i386 */ .long sys_socketcall .long sys_syslog .long sys_setitimer
arch/m68knommu/kernel/sys_m68k.c +0 -6
@@ -193,12 +193,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} - -/* sys_cacheflush -- flush (part of) the processor cache. */ asmlinkage intsys_cacheflush (unsigned long addr,int scope,int cache,unsigned long len)
arch/parisc/kernel/sys_parisc.c +0 -8
@@ -242,14 +242,6 @@return sys_readahead (fd, (loff_t )high <<32 | low, count); } -/* -* This changes the io permissions bitmap in the current task. -*/ -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int turn_on) -{ -return -ENOSYS ; -} -asmlinkage unsigned long sys_alloc_hugepages (int key,unsigned long addr,unsigned long len,int prot,int flag) {return -ENOMEM ;
arch/s390/kernel/syscalls.S +1 -1
@@ -109,7 +109,7 @@ NI_SYSCALL /* old profil syscall */ SYSCALL(sys_statfs,sys_statfs,compat_sys_statfs_wrapper) SYSCALL(sys_fstatfs,sys_fstatfs,compat_sys_fstatfs_wrapper) /* 100 */ -SYSCALL(sys_ioperm,sys_ni_syscall,sys_ni_syscall) +NI_SYSCALL /* ioperm for i386 */ SYSCALL(sys_socketcall,sys_socketcall,compat_sys_socketcall_wrapper) SYSCALL(sys_syslog,sys_syslog,sys32_syslog_wrapper) SYSCALL(sys_setitimer,sys_setitimer,compat_sys_setitimer_wrapper)
arch/s390/kernel/sys_s390.c +0 -5
@@ -289,11 +289,6 @@return error; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} -#else /* CONFIG_ARCH_S390X */ asmlinkage int s390x_newuname(struct new_utsname * name)
arch/sparc/kernel/setup.c +0 -5
@@ -390,11 +390,6 @@ }console_initcall (set_preferred_console); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -EIO ; -} -extern char *sparc_cpu_type[];extern char *sparc_fpu_type[];
arch/sparc64/kernel/setup.c +0 -5
@@ -603,11 +603,6 @@ }console_initcall (set_preferred_console); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -EIO ; -} -/* BUFFER is PAGE_SIZE bytes long. */ extern char *sparc_cpu_type;
arch/sparc64/kernel/sys_sparc32.c +0 -5
@@ -282,11 +282,6 @@ __put_user(i->tv_usec, &o->tv_usec))); } -asmlinkage long sys32_ioperm (u32 from,u32 num,int on) -{ -return sys_ioperm ((unsigned long )from, (unsigned long )num, on); -} -struct msgbuf32 {s32 mtype;char mtext[1 ]; };struct ipc_perm32
include/asm-h8300/unistd.h +1 -2
@@ -105,7 +105,7 @@#define __NR_profil 98#define __NR_statfs 99#define __NR_fstatfs 100 -#define __NR_ioperm 101 +#define __NR_ioperm/* 101 */ not supported#define __NR_socketcall 102#define __NR_syslog 103#define __NR_setitimer 104
@@ -490,7 +490,6 @@ int dummy, ...); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-m68k/unistd.h +1 -2
@@ -105,7 +105,7 @@#define __NR_profil 98#define __NR_statfs 99#define __NR_fstatfs 100 -#define __NR_ioperm 101 +#define __NR_ioperm/* 101 */ not supported#define __NR_socketcall 102#define __NR_syslog 103#define __NR_setitimer 104
@@ -374,7 +374,6 @@ asmlinkage int sys_execve(char *name, char **argv, char **envp); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct pt_regs ; int sys_request_irq(unsigned int, irqreturn_t (*)(int, void *, struct pt_regs *),
include/asm-m68knommu/unistd.h +1 -2
@@ -105,7 +105,7 @@#define __NR_profil 98#define __NR_statfs 99#define __NR_fstatfs 100 -#define __NR_ioperm 101 +#define __NR_ioperm/* 101 */ not supported#define __NR_socketcall 102#define __NR_syslog 103#define __NR_setitimer 104
@@ -416,7 +416,6 @@ asmlinkage int sys_execve(char *name, char **argv, char **envp); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct pt_regs ; int sys_request_irq(unsigned int, irqreturn_t (*)(int, void *, struct pt_regs *),
include/asm-parisc/unistd.h +0 -1
@@ -909,7 +909,6 @@int sys_vfork (struct pt_regs *regs);int sys_pipe (int *fildes);long sys_ptrace (long request,pid_t pid,long addr,long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int turn_on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-s390/unistd.h +0 -1
@@ -554,7 +554,6 @@#endif /* CONFIG_ARCH_S390X */ asmlinkage __SYS_RETTYPE sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-sparc/unistd.h +0 -1
@@ -461,7 +461,6 @@ unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); -asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-sparc64/unistd.h +0 -1
@@ -447,7 +447,6 @@ unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
Quoted 2 lines · Brian Gerst
Remove stubs for
sys_iopermfor non-x86 arches, usingsys_ni_syscallinstead where applicable.
I have better suggestion: make sys_ioperm() a cond_syscall(). Then kill its implementation on all platforms where it just returns -ENOSYS.
Quoted 7 lines · [email protected] wrote:
Quoted 2 lines · Brian Gerst
Remove stubs for
sys_iopermfor non-x86 arches, usingsys_ni_syscallinstead where applicable.I have better suggestion: make
sys_ioperm()acond_syscall(). Then kill its implementation on all platforms where it just returns-ENOSYS.
Why is that better? Sticking a pointer to the not-implemented-syscall into the syscall table is pretty darn explicit.
Quoted 11 lines · Andrew Morton
Quoted 7 lines · [email protected] wrote:
Quoted 2 lines · Brian Gerst
Remove stubs for
sys_iopermfor non-x86 arches, usingsys_ni_syscallinstead where applicable.I have better suggestion: make
sys_ioperm()acond_syscall(). Then kill its implementation on all platforms where it just returns-ENOSYS.Why is that better? Sticking a pointer to the not-implemented-syscall into the syscall table is pretty darn explicit.
No chance of reuse. BTW,
#define __NR_ioperm /* 101 */ <uncommented text>
is asking for trouble. You get the symbol defined (so that will fool any ifdef) and it expands to something completely bogus.
Quoted 11 lines · [email protected] wrote:
Quoted 9 lines · Andrew Morton
Quoted 6 lines · [email protected] wrote:
Quoted 1 line · Brian Gerst
Remove stubs for
sys_iopermfor non-x86 arches, usingsys_ni_syscallinstead where applicable.I have better suggestion: make
sys_ioperm()acond_syscall(). Then kill its implementation on all platforms where it just returns-ENOSYS.
Quoted 9 lines
Quoted 2 lines
Why is that better? Sticking a pointer to the not-implemented-syscall into the syscall table is pretty darn explicit.
No chance of reuse. BTW,
#define__NR_ioperm/* 101 */ <uncommented text>
is asking for trouble. You get the symbol defined (so that will fool any ifdef) and it expands to something completely bogus.
cond_syscall() should be used for cases where a config option controls the syscall. Support for sys_ioperm is unconditionally no for non-x86 arches.
In practice, new syscalls are added to the end of the table, so reuse isn't a major issue. I backed out the uncommened text with __NR_ioperm, but there are other examples of this in those files that I just copied.
An audit of unistd.h needs to be done.
--
Brian Gerst
arch/h8300/kernel/syscalls.S +1 -1
@@ -116,7 +116,7 @@ .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */ .long SYMBOL_NAME(sys_statfs) .long SYMBOL_NAME(sys_fstatfs) /* 100 */ - .long SYMBOL_NAME(sys_ioperm) + .long SYMBOL_NAME(sys_ni_syscall) /* ioperm for i386 */ .long SYMBOL_NAME(sys_socketcall) .long SYMBOL_NAME(sys_syslog) .long SYMBOL_NAME(sys_setitimer)
arch/h8300/kernel/sys_h8300.c +0 -5
@@ -260,11 +260,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} -/* sys_cacheflush -- no support. */ asmlinkage intsys_cacheflush (unsigned long addr,int scope,int cache,unsigned long len)
arch/m68k/kernel/entry.S +1 -1
@@ -528,7 +528,7 @@ .long sys_ni_syscall /* old profil syscall holder */ .long sys_statfs .long sys_fstatfs /* 100 */ - .long sys_ioperm + .long sys_ni_syscall /* ioperm for i386 */ .long sys_socketcall .long sys_syslog .long sys_setitimer
arch/m68k/kernel/sys_m68k.c +0 -6
@@ -261,12 +261,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} - -/* Convert virtual (user) address VADDR to physical address PADDR */ #define virt_to_phys_040 (vaddr) \ ({ \
arch/m68knommu/kernel/syscalltable.S +1 -1
@@ -120,7 +120,7 @@ .long sys_ni_syscall /* old profil syscall holder */ .long sys_statfs .long sys_fstatfs /* 100 */ - .long sys_ioperm + .long sys_ni_syscall /* ioperm for i386 */ .long sys_socketcall .long sys_syslog .long sys_setitimer
arch/m68knommu/kernel/sys_m68k.c +0 -6
@@ -193,12 +193,6 @@return -EINVAL ; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} - -/* sys_cacheflush -- flush (part of) the processor cache. */ asmlinkage intsys_cacheflush (unsigned long addr,int scope,int cache,unsigned long len)
arch/parisc/kernel/sys_parisc.c +0 -8
@@ -242,14 +242,6 @@return sys_readahead (fd, (loff_t )high <<32 | low, count); } -/* -* This changes the io permissions bitmap in the current task. -*/ -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int turn_on) -{ -return -ENOSYS ; -} -asmlinkage unsigned long sys_alloc_hugepages (int key,unsigned long addr,unsigned long len,int prot,int flag) {return -ENOMEM ;
arch/s390/kernel/syscalls.S +1 -1
@@ -109,7 +109,7 @@ NI_SYSCALL /* old profil syscall */ SYSCALL(sys_statfs,sys_statfs,compat_sys_statfs_wrapper) SYSCALL(sys_fstatfs,sys_fstatfs,compat_sys_fstatfs_wrapper) /* 100 */ -SYSCALL(sys_ioperm,sys_ni_syscall,sys_ni_syscall) +NI_SYSCALL /* ioperm for i386 */ SYSCALL(sys_socketcall,sys_socketcall,compat_sys_socketcall_wrapper) SYSCALL(sys_syslog,sys_syslog,sys32_syslog_wrapper) SYSCALL(sys_setitimer,sys_setitimer,compat_sys_setitimer_wrapper)
arch/s390/kernel/sys_s390.c +0 -5
@@ -289,11 +289,6 @@return error; } -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -ENOSYS ; -} -#else /* CONFIG_ARCH_S390X */ asmlinkage int s390x_newuname(struct new_utsname * name)
arch/sparc/kernel/setup.c +0 -5
@@ -390,11 +390,6 @@ }console_initcall (set_preferred_console); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -EIO ; -} -extern char *sparc_cpu_type[];extern char *sparc_fpu_type[];
arch/sparc64/kernel/setup.c +0 -5
@@ -603,11 +603,6 @@ }console_initcall (set_preferred_console); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on) -{ -return -EIO ; -} -/* BUFFER is PAGE_SIZE bytes long. */ extern char *sparc_cpu_type;
arch/sparc64/kernel/sys_sparc32.c +0 -5
@@ -282,11 +282,6 @@ __put_user(i->tv_usec, &o->tv_usec))); } -asmlinkage long sys32_ioperm (u32 from,u32 num,int on) -{ -return sys_ioperm ((unsigned long )from, (unsigned long )num, on); -} -struct msgbuf32 {s32 mtype;char mtext[1 ]; };struct ipc_perm32
include/asm-h8300/unistd.h +0 -1
@@ -490,7 +490,6 @@ int dummy, ...); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-m68k/unistd.h +0 -1
@@ -374,7 +374,6 @@ asmlinkage int sys_execve(char *name, char **argv, char **envp); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct pt_regs ; int sys_request_irq(unsigned int, irqreturn_t (*)(int, void *, struct pt_regs *),
include/asm-m68knommu/unistd.h +0 -1
@@ -416,7 +416,6 @@ asmlinkage int sys_execve(char *name, char **argv, char **envp); asmlinkage int sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct pt_regs ; int sys_request_irq(unsigned int, irqreturn_t (*)(int, void *, struct pt_regs *),
include/asm-parisc/unistd.h +0 -1
@@ -909,7 +909,6 @@int sys_vfork (struct pt_regs *regs);int sys_pipe (int *fildes);long sys_ptrace (long request,pid_t pid,long addr,long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int turn_on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-s390/unistd.h +0 -1
@@ -554,7 +554,6 @@#endif /* CONFIG_ARCH_S390X */ asmlinkage __SYS_RETTYPE sys_pipe(unsigned long *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-sparc/unistd.h +0 -1
@@ -461,7 +461,6 @@ unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); -asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
include/asm-sparc64/unistd.h +0 -1
@@ -447,7 +447,6 @@ unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off); -asmlinkage long sys_ioperm (unsigned long from,unsigned long num,int on);struct sigaction ; asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,