diff mbox series

[v2,2/5] parisc: add __NR_Linux_syscalls macro with __NR_syscalls

Message ID 1538058267-3765-3-git-send-email-firoz.khan@linaro.org (mailing list archive)
State Not Applicable
Headers show
Series System call table generation support | expand

Commit Message

Firoz Khan Sept. 27, 2018, 2:24 p.m. UTC
__NR_Linux_syscalls macro holds the number of system call
exist in PARISC architecture. This macro is currently the
part of uapi/asm/unistd.h file. We have to change the value
of __NR_Linux_syscalls, if we add or delete a system call.

One of the patch in this patch series has a script which
will generate a uapi header based on syscall.tbl file. The
syscall.tbl file contains the number of system call inform-
ation. So we have two option to update __NR_Linux_syscalls
value.

1. Update __NR_Linux_syscalls in uapi/asm/unistd.h manually
   by counting the no.of system calls. No need to update
   __NR_Linux_syscalls until we either add a new system call
   or delete an existing system call.

2. We can keep this feature it above mentioned script, that
   will count the number of syscalls and keep it in a gener-
   ated file. In this case we don't need to explicitly update
   __NR_Linux_syscalls in asm/unistd.h file.

The 2nd option will be the recommended one. For that, I moved
the __NR_Linux_syscalls macro from uapi/asm/unistd.h to asm/
unistd.h. The macro __NR_syscalls also added for making the
name convention same across all architecture. While __NR_sys-
calls isn't strictly part of the uapi, having it as part of
the generated header to simplifies the implementation. We also
need to enclose this macro with #ifdef __KERNEL__ to avoid side
effects.

Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
---
 arch/parisc/include/uapi/asm/unistd.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Arnd Bergmann Sept. 28, 2018, 12:14 p.m. UTC | #1
On Thu, Sep 27, 2018 at 4:25 PM Firoz Khan <firoz.khan@linaro.org> wrote:
>
> 1. Update __NR_Linux_syscalls in uapi/asm/unistd.h manually
>    by counting the no.of system calls. No need to update
>    __NR_Linux_syscalls until we either add a new system call
>    or delete an existing system call.
>
> 2. We can keep this feature it above mentioned script, that
>    will count the number of syscalls and keep it in a gener-
>    ated file. In this case we don't need to explicitly update
>    __NR_Linux_syscalls in asm/unistd.h file.
>
> The 2nd option will be the recommended one. For that, I moved
> the __NR_Linux_syscalls macro from uapi/asm/unistd.h to asm/
> unistd.h. The macro __NR_syscalls also added for making the
> name convention same across all architecture. While __NR_sys-
> calls isn't strictly part of the uapi, having it as part of
> the generated header to simplifies the implementation. We also
> need to enclose this macro with #ifdef __KERNEL__ to avoid side
> effects.
>
> Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> ---
>  arch/parisc/include/uapi/asm/unistd.h | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/parisc/include/uapi/asm/unistd.h b/arch/parisc/include/uapi/asm/unistd.h
> index bb52e12..255c62a 100644
> --- a/arch/parisc/include/uapi/asm/unistd.h
> +++ b/arch/parisc/include/uapi/asm/unistd.h
> @@ -366,7 +366,11 @@
>  #define __NR_statx             (__NR_Linux + 349)
>  #define __NR_io_pgetevents     (__NR_Linux + 350)
>
> -#define __NR_Linux_syscalls    (__NR_io_pgetevents + 1)
> +#ifdef __KERNEL__
> +#define __NR_syscalls           351
> +#endif
> +
> +#define __NR_Linux_syscalls     __NR_syscalls
>

Hmm, now you have a __NR_Linux_syscalls macro that is defined in user
space to a another macro that is not visible there. How about moving
__NR_Linux_syscalls into arch/parisc/include/asm/unistd.h or
replacing its users with __NR_syscalls instead?

       Arnd
Firoz Khan Oct. 1, 2018, 2:06 p.m. UTC | #2
Hi Arnd,

On Fri, 28 Sep 2018 at 17:44, Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Thu, Sep 27, 2018 at 4:25 PM Firoz Khan <firoz.khan@linaro.org> wrote:
> >
> > 1. Update __NR_Linux_syscalls in uapi/asm/unistd.h manually
> >    by counting the no.of system calls. No need to update
> >    __NR_Linux_syscalls until we either add a new system call
> >    or delete an existing system call.
> >
> > 2. We can keep this feature it above mentioned script, that
> >    will count the number of syscalls and keep it in a gener-
> >    ated file. In this case we don't need to explicitly update
> >    __NR_Linux_syscalls in asm/unistd.h file.
> >
> > The 2nd option will be the recommended one. For that, I moved
> > the __NR_Linux_syscalls macro from uapi/asm/unistd.h to asm/
> > unistd.h. The macro __NR_syscalls also added for making the
> > name convention same across all architecture. While __NR_sys-
> > calls isn't strictly part of the uapi, having it as part of
> > the generated header to simplifies the implementation. We also
> > need to enclose this macro with #ifdef __KERNEL__ to avoid side
> > effects.
> >
> > Signed-off-by: Firoz Khan <firoz.khan@linaro.org>
> > ---
> >  arch/parisc/include/uapi/asm/unistd.h | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/parisc/include/uapi/asm/unistd.h b/arch/parisc/include/uapi/asm/unistd.h
> > index bb52e12..255c62a 100644
> > --- a/arch/parisc/include/uapi/asm/unistd.h
> > +++ b/arch/parisc/include/uapi/asm/unistd.h
> > @@ -366,7 +366,11 @@
> >  #define __NR_statx             (__NR_Linux + 349)
> >  #define __NR_io_pgetevents     (__NR_Linux + 350)
> >
> > -#define __NR_Linux_syscalls    (__NR_io_pgetevents + 1)
> > +#ifdef __KERNEL__
> > +#define __NR_syscalls           351
> > +#endif
> > +
> > +#define __NR_Linux_syscalls     __NR_syscalls
> >
>
> Hmm, now you have a __NR_Linux_syscalls macro that is defined in user
> space to a another macro that is not visible there. How about moving
> __NR_Linux_syscalls into arch/parisc/include/asm/unistd.h or
> replacing its users with __NR_syscalls instead?

Something went wrong when I created this patch series. Yes, this must be
reside in asm/unistd.h instead of uapi/asm/unistd.h. I would update this
change asap.

I would appreciate if some can perform boot test on actual platform.
Hopefully the above change doesn't make any problem.

Thanks
Firoz

>
>        Arnd
diff mbox series

Patch

diff --git a/arch/parisc/include/uapi/asm/unistd.h b/arch/parisc/include/uapi/asm/unistd.h
index bb52e12..255c62a 100644
--- a/arch/parisc/include/uapi/asm/unistd.h
+++ b/arch/parisc/include/uapi/asm/unistd.h
@@ -366,7 +366,11 @@ 
 #define __NR_statx		(__NR_Linux + 349)
 #define __NR_io_pgetevents	(__NR_Linux + 350)
 
-#define __NR_Linux_syscalls	(__NR_io_pgetevents + 1)
+#ifdef __KERNEL__
+#define __NR_syscalls           351
+#endif
+
+#define __NR_Linux_syscalls     __NR_syscalls
 
 #define LINUX_GATEWAY_ADDR      0x100