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
State New
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(-)

-- 
1.9.1

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