All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Will Deacon <will.deacon@arm.com>
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	davem@davemloft.net, chris@zankel.net, catalin.marinas@arm.com,
	arnd@arndb.de, cmetcalf@tilera.com
Subject: Re: [PATCH 2/3] ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC
Date: Wed, 11 Jul 2012 14:40:01 -0700	[thread overview]
Message-ID: <20120711144001.b1f7c21d.akpm@linux-foundation.org> (raw)
In-Reply-To: <1342020741-12758-3-git-send-email-will.deacon@arm.com>

On Wed, 11 Jul 2012 16:32:20 +0100
Will Deacon <will.deacon@arm.com> wrote:

> Commit 48b25c43 ("[PATCH v3] ipc: provide generic compat versions of IPC
> syscalls") added a new ARCH_WANT_OLD_COMPAT_IPC config option for
> architectures to select if their compat target requires the old IPC
> syscall interface.
> 
> For architectures (such as AArch64) that do not require the internal
> calling conventions provided by this option, but have a compat target
> where the C library passes the IPC_64 flag explicitly,
> compat_ipc_parse_version no longer strips out the flag before calling
> the native system call implementation, resulting in unknown SHM/IPC
> commands and -EINVAL being returned to userspace.
> 
> This patch separates the selection of the internal calling conventions
> for the IPC syscalls from the version parsing, allowing architectures to
> select __ARCH_WANT_COMPAT_IPC_PARSE_VERSION if they want to use version
> parsing whilst retaining the newer syscall calling conventions.
> 
> Cc: Chris Metcalf <cmetcalf@tilera.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
>  include/linux/compat.h |    1 +
>  ipc/compat.c           |    2 +-
>  2 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/include/linux/compat.h b/include/linux/compat.h
> index 4e89039..9f68e90 100644
> --- a/include/linux/compat.h
> +++ b/include/linux/compat.h
> @@ -256,6 +256,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
>  			   compat_size_t __user *len_ptr);
>  
>  #ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
> +#define __ARCH_WANT_COMPAT_IPC_PARSE_VERSION
>  long compat_sys_semctl(int first, int second, int third, void __user *uptr);
>  long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
>  long compat_sys_msgrcv(int first, int second, int msgtyp, int third,
> diff --git a/ipc/compat.c b/ipc/compat.c
> index 53cebdf..a41600f 100644
> --- a/ipc/compat.c
> +++ b/ipc/compat.c
> @@ -118,7 +118,7 @@ extern int sem_ctls[];
>  
>  static inline int compat_ipc_parse_version(int *cmd)
>  {
> -#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
> +#ifdef	__ARCH_WANT_COMPAT_IPC_PARSE_VERSION
>  	int version = *cmd & IPC_64;
>  
>  	/* this is tricky: architectures that have support for the old

Could we do this purely in Kconfig?  Add a new
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION and always set it true if
CONFIG_ARCH_WANT_OLD_COMPAT_IPC?

  parent reply	other threads:[~2012-07-11 21:40 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 15:32 [PATCH 0/3] random compat IPC fixes required by AArch64 Will Deacon
2012-07-11 15:32 ` [PATCH 1/3] ipc: add COMPAT_SHMLBA support Will Deacon
2012-07-11 15:32 ` [PATCH 2/3] ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC Will Deacon
2012-07-11 16:07   ` Chris Metcalf
2012-07-11 16:07     ` Chris Metcalf
2012-07-11 21:40   ` Andrew Morton [this message]
2012-07-12  8:47     ` Will Deacon
2012-07-12  8:59       ` Andrew Morton
2012-07-13 10:39         ` Will Deacon
2012-07-13 10:39           ` Will Deacon
2012-07-11 15:32 ` [PATCH 3/3] ipc: compat: use signed size_t types for msgsnd and msgrcv Will Deacon
2012-07-11 16:06   ` Chris Metcalf
2012-07-11 16:06     ` Chris Metcalf

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=20120711144001.b1f7c21d.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=chris@zankel.net \
    --cc=cmetcalf@tilera.com \
    --cc=davem@davemloft.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=will.deacon@arm.com \
    /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.