On Sat, Mar 10, 2018 at 12:55 PM, Tautschnig, Michael <tauts...@amazon.co.uk> wrote: > All syscall arguments are passed in as types of the same byte size as > unsigned long (width of full registers). Using a smaller type without a > cast may result in losing bits of information. SYSCALL_DEFINE* introduce > adequate type casts. All definitions of syscalls in x86 except for those > patched here have already been using the appropriate SYSCALL_DEFINE*. [...] > diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c > index 2f72330..d98b2a3 100644 > --- a/arch/x86/kernel/ioport.c > +++ b/arch/x86/kernel/ioport.c > @@ -23,7 +23,8 @@ > /* > * this changes the io permissions bitmap in the current task. > */ > -asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int > turn_on) > +SYSCALL_DEFINE3(sys_ioperm, unsigned long, from, unsigned long, num, int, > + turn_on)
Shouldn't this be "SYSCALL_DEFINE3(ioperm, [...]", without the "sys_"?