Re: [PATCH 1/2] ARM: add finit_module syscall to ARM

From: Russell King
Date: Fri Sep 21 2012 - 12:51:43 EST


On Fri, Sep 21, 2012 at 08:58:00AM -0700, Kees Cook wrote:
> Add finit_module syscall to the ARM syscall list.
>
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
> ---
> arch/arm/include/asm/unistd.h | 1 +
> arch/arm/kernel/calls.S | 1 +
> 2 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
> index 0cab47d..904b579 100644
> --- a/arch/arm/include/asm/unistd.h
> +++ b/arch/arm/include/asm/unistd.h
> @@ -404,6 +404,7 @@
> #define __NR_setns (__NR_SYSCALL_BASE+375)
> #define __NR_process_vm_readv (__NR_SYSCALL_BASE+376)
> #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377)
> +#define __NR_finit_module (__NR_SYSCALL_BASE+378)

This gives us a different syscall ordering if we add the kcmp syscall.

That brings up another question though - when was kcmp added to x86, and
why aren't we getting notifications from checksyscalls.sh that ARM hasn't
been updated?

It seems to be that the script was broken, and no one has noticed.

commit 29dc54c673ea2531d589400badb4ada5f5f60dae
Author: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
Date: Fri Nov 11 15:57:53 2011 -0800

checksyscalls: Use arch/x86/syscalls/syscall_32.tbl as source

Use the new arch/x86/syscalls/syscall_32.tbl file as source instead of
arch/x86/include/asm/unistd_32.h.

Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>

is the culpret, more specifically this fragment:

+ echo <<EOF
+#if !defined(__NR_${name}) && !defined(__IGNORE_${name})
+#warning syscall ${name} not implemented
+#endif
+EOF

"echo <<EOF" doesn't read from its stdin and output to stdout, so the
above just generates a blank line for each entry in x86's syscalls_32.tbl,
resulting in the compiler doing no checking for us.

That "echo <<EOF" should be "cat <<EOF"... and with that fixed we get:

<stdin>:1220:2: warning: #warning syscall kcmp not implemented

So, actually, I want to add this kcmp syscall _now_ into -rc which I'm
afraid will break your patch, and bump your syscall number on ARM to 379.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/