All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Andrew Pinski <apinski@cavium.com>
Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers.
Date: Tue, 17 Jun 2014 17:22:15 +0100	[thread overview]
Message-ID: <20140617162215.GF21752@arm.com> (raw)
In-Reply-To: <1400914939-9708-9-git-send-email-apinski@cavium.com>

On Sat, May 24, 2014 at 12:02:03AM -0700, Andrew Pinski wrote:
> In the ARM64 ILP32 case, we want to say the syscalls that normally
> would pass 64bit as two arguments are now passing as one so want to
> use the 64bit naming scheme.
> 
> Signed-off-by: Andrew Pinski <apinski@cavium.com>
> ---
>  include/uapi/asm-generic/unistd.h |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
> index 3336406..0648659 100644
> --- a/include/uapi/asm-generic/unistd.h
> +++ b/include/uapi/asm-generic/unistd.h
> @@ -875,8 +875,11 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
>   * they take different names.
>   * Here we map the numbers so that both versions
>   * use the same syscall table layout.
> + * For 32bit abis where 64bit can be passed via one
> + * register, use the same naming as the 64bit ones
> + * as they will only have a 64 bit off_t.
>   */
> -#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
> +#if (__BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)) || defined(__SYSCALL_NONCOMPAT)
>  #define __NR_fcntl __NR3264_fcntl
>  #define __NR_statfs __NR3264_statfs
>  #define __NR_fstatfs __NR3264_fstatfs

I can see why you are defining this. For compat, we don't expose
__SYSCALL_COMPAT to user. But this to work with ILP32 UAPI headers we
would have to define __SYSCALL_NONCOMPAT in the arm64 uapi unistd.h if
!__LP64__. I think we should use some naming closer to what we expose
via UAPI already (on other architectures) like
__ARCH_WANT_64BIT_SYSCALLS (or maybe we could reuse
__ARCH_WANT_SYSCALL_OFF_T).

-- 
Catalin

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Andrew Pinski <apinski@cavium.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers.
Date: Tue, 17 Jun 2014 17:22:15 +0100	[thread overview]
Message-ID: <20140617162215.GF21752@arm.com> (raw)
Message-ID: <20140617162215.93UJQOVdkWEczmHKe3w4bFFBlNvMc-O5S2gVpaam87c@z> (raw)
In-Reply-To: <1400914939-9708-9-git-send-email-apinski@cavium.com>

On Sat, May 24, 2014 at 12:02:03AM -0700, Andrew Pinski wrote:
> In the ARM64 ILP32 case, we want to say the syscalls that normally
> would pass 64bit as two arguments are now passing as one so want to
> use the 64bit naming scheme.
> 
> Signed-off-by: Andrew Pinski <apinski@cavium.com>
> ---
>  include/uapi/asm-generic/unistd.h |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
> index 3336406..0648659 100644
> --- a/include/uapi/asm-generic/unistd.h
> +++ b/include/uapi/asm-generic/unistd.h
> @@ -875,8 +875,11 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
>   * they take different names.
>   * Here we map the numbers so that both versions
>   * use the same syscall table layout.
> + * For 32bit abis where 64bit can be passed via one
> + * register, use the same naming as the 64bit ones
> + * as they will only have a 64 bit off_t.
>   */
> -#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
> +#if (__BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)) || defined(__SYSCALL_NONCOMPAT)
>  #define __NR_fcntl __NR3264_fcntl
>  #define __NR_statfs __NR3264_statfs
>  #define __NR_fstatfs __NR3264_fstatfs

I can see why you are defining this. For compat, we don't expose
__SYSCALL_COMPAT to user. But this to work with ILP32 UAPI headers we
would have to define __SYSCALL_NONCOMPAT in the arm64 uapi unistd.h if
!__LP64__. I think we should use some naming closer to what we expose
via UAPI already (on other architectures) like
__ARCH_WANT_64BIT_SYSCALLS (or maybe we could reuse
__ARCH_WANT_SYSCALL_OFF_T).

-- 
Catalin

WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers.
Date: Tue, 17 Jun 2014 17:22:15 +0100	[thread overview]
Message-ID: <20140617162215.GF21752@arm.com> (raw)
In-Reply-To: <1400914939-9708-9-git-send-email-apinski@cavium.com>

On Sat, May 24, 2014 at 12:02:03AM -0700, Andrew Pinski wrote:
> In the ARM64 ILP32 case, we want to say the syscalls that normally
> would pass 64bit as two arguments are now passing as one so want to
> use the 64bit naming scheme.
> 
> Signed-off-by: Andrew Pinski <apinski@cavium.com>
> ---
>  include/uapi/asm-generic/unistd.h |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
> index 3336406..0648659 100644
> --- a/include/uapi/asm-generic/unistd.h
> +++ b/include/uapi/asm-generic/unistd.h
> @@ -875,8 +875,11 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
>   * they take different names.
>   * Here we map the numbers so that both versions
>   * use the same syscall table layout.
> + * For 32bit abis where 64bit can be passed via one
> + * register, use the same naming as the 64bit ones
> + * as they will only have a 64 bit off_t.
>   */
> -#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
> +#if (__BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)) || defined(__SYSCALL_NONCOMPAT)
>  #define __NR_fcntl __NR3264_fcntl
>  #define __NR_statfs __NR3264_statfs
>  #define __NR_fstatfs __NR3264_fstatfs

I can see why you are defining this. For compat, we don't expose
__SYSCALL_COMPAT to user. But this to work with ILP32 UAPI headers we
would have to define __SYSCALL_NONCOMPAT in the arm64 uapi unistd.h if
!__LP64__. I think we should use some naming closer to what we expose
via UAPI already (on other architectures) like
__ARCH_WANT_64BIT_SYSCALLS (or maybe we could reuse
__ARCH_WANT_SYSCALL_OFF_T).

-- 
Catalin

  reply	other threads:[~2014-06-17 16:22 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-24  7:01 [PATCHv2 00/24] ILP32 Support in ARM64 Andrew Pinski
2014-05-24  7:01 ` Andrew Pinski
2014-05-24  7:01 ` [PATCH 01/24] ARM64: Force LP64 to compile the kernel Andrew Pinski
2014-05-24  7:01   ` Andrew Pinski
2014-05-24  7:01 ` [PATCH 02/24] ARM64: Rename COMPAT to AARCH32_EL0 in Kconfig Andrew Pinski
2014-05-24  7:01   ` Andrew Pinski
2014-05-24  7:01 ` [PATCH 03/24] ARM64: Change some CONFIG_COMPAT over to use CONFIG_AARCH32_EL0 instead Andrew Pinski
2014-05-24  7:01   ` Andrew Pinski
2014-06-17 15:15   ` Catalin Marinas
2014-06-17 15:15     ` Catalin Marinas
2014-05-24  7:01 ` [PATCH 04/24] ARM64:ILP32: Set kernel_long to long long so we can reuse most of the same syscalls as LP64 Andrew Pinski
2014-05-24  7:01   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 05/24] ARM64:UAPI: Set the correct __BITS_PER_LONG for ILP32 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-17 15:22   ` Catalin Marinas
2014-06-17 15:22     ` Catalin Marinas
2014-06-17 15:29     ` Arnd Bergmann
2014-06-17 15:29       ` Arnd Bergmann
2014-05-24  7:02 ` [PATCH 06/24] Allow for some signal structures to be the same between a 32bit ABI and the 64bit ABI Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-17 15:43   ` Catalin Marinas
2014-06-17 15:43     ` Catalin Marinas
2014-05-24  7:02 ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 07/24] ARM64:ILP32: Use the same size and layout of the signal structures for ILP32 as for LP64 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-17 15:58   ` Catalin Marinas
2014-06-17 15:58     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-17 16:22   ` Catalin Marinas [this message]
2014-06-17 16:22     ` Catalin Marinas
2014-06-17 16:22     ` Catalin Marinas
2014-05-24  7:02 ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 09/24] ARM64:ILP32: Use the same syscall names as LP64 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-18  8:51   ` Catalin Marinas
2014-06-18  8:51     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 10/24] ARM64: Introduce is_a32_task and is_a32_thread. Use them in the correct locations Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-18 17:47   ` Catalin Marinas
2014-06-18 17:47     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 11/24] ARM64: Add ARM64_ILP32 to Kconfig Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 12/24] ARM64: Add is_ilp32_compat_task and is_ilp32_compat_thread and TIF_32BIT_AARCH64 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-19 12:49   ` Catalin Marinas
2014-06-19 12:49     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 13/24] Drivers:input: Use is_compat_task for ARM64 also Andrew Pinski
2014-05-24  7:02 ` Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-19 12:50   ` Catalin Marinas
2014-06-19 12:50     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 14/24] ARM64:ILP32: COMPAT_USE_64BIT_TIME is true for ILP32 tasks Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-19 12:52   ` Catalin Marinas
2014-06-19 12:52     ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 15/24] ARM64:ILP32: Use the non compat HWCAP for ILP32 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-19 12:54   ` Catalin Marinas
2014-06-19 12:54     ` Catalin Marinas
2014-07-01 13:01   ` Dr. Philipp Tomsich
2014-07-01 13:01     ` Dr. Philipp Tomsich
2014-05-24  7:02 ` [PATCH 16/24] ARM64:ILP32 use the standard start_thread for ILP32 so the processor state is not AARCH32 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 17/24] ARM64:ILP32: Support core dump for ILP32 Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 18/24] ARM64: Add loading of ILP32 binaries Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 19/24] ARM64: Add vdso for ILP32 and use it for the signal return Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 20/24] ptrace: Allow compat to use the native siginfo Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 21/24] ARM64:ILP32: The native siginfo is used instead of the compat siginfo Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24 18:56   ` H. Peter Anvin
2014-05-24 18:56     ` H. Peter Anvin
2014-05-24  7:02 ` [PATCH 22/24] ARM64:ILP32: Use a seperate syscall table as a few syscalls need to be using the compat syscalls Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-07-01 15:05   ` Catalin Marinas
2014-07-01 15:05     ` Catalin Marinas
2014-07-01 15:30     ` Pinski, Andrew
2014-07-01 15:30       ` Pinski, Andrew
2014-07-01 16:38       ` Arnd Bergmann
2014-07-01 16:38         ` Arnd Bergmann
2014-07-01 16:50         ` Catalin Marinas
2014-07-01 16:50           ` Catalin Marinas
2014-07-01 17:04           ` Arnd Bergmann
2014-07-01 17:04             ` Arnd Bergmann
2014-07-01 16:49       ` Catalin Marinas
2014-07-01 16:49         ` Catalin Marinas
2014-05-24  7:02 ` [PATCH 23/24] ARM64:ILP32: Fix signal return for ILP32 when the user modified the signal stack Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-05-24  7:02 ` [PATCH 24/24] Add documentation about ARM64 ILP32 ABI Andrew Pinski
2014-05-24  7:02   ` Andrew Pinski
2014-06-16 17:08 ` [PATCHv2 00/24] ILP32 Support in ARM64 Catalin Marinas
2014-06-16 17:08   ` Catalin Marinas
2014-06-16 17:19   ` Pinski, Andrew
2014-06-16 17:19     ` Pinski, Andrew
2014-06-17 10:43     ` Catalin Marinas
2014-06-17 10:43       ` Catalin Marinas
2014-06-17 11:30       ` Pinski, Andrew
2014-06-17 11:30         ` Pinski, Andrew
  -- strict thread matches above, loose matches on Subject: below --
2014-09-03 21:18 [PATCHv3 00/24] ILP32 support " Andrew Pinski
2014-09-03 21:19 ` [PATCH 08/24] Allow a 32bit ABI to use the naming of the 64bit ABI syscalls to avoid confusion of not splitting the registers Andrew Pinski
2014-09-03 21:19   ` Andrew Pinski
2014-09-04 10:11   ` Arnd Bergmann
2014-09-04 10:11     ` Arnd Bergmann
2014-10-01 12:42     ` Catalin Marinas
2014-10-01 12:42       ` Catalin Marinas
2014-10-01 14:00       ` Arnd Bergmann
2014-10-01 14:00         ` Arnd Bergmann
2014-10-02 11:19         ` Catalin Marinas
2014-10-02 11:19           ` Catalin Marinas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140617162215.GF21752@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=apinski@cavium.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.