linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, catalin.marinas@arm.com,
	dave.martin@arm.com, james.morse@arm.com,
	linux-fsdevel@vger.kernel.org, marc.zyngier@arm.com,
	viro@zeniv.linux.org.uk, will.deacon@arm.com
Subject: Re: [PATCH 18/18] arm64: implement syscall wrappers
Date: Tue, 15 May 2018 09:37:16 +0100	[thread overview]
Message-ID: <20180515083715.tcy5xzldkcvixez6@salmiak> (raw)
In-Reply-To: <20180514205744.GC26773@light.dominikbrodowski.net>

On Mon, May 14, 2018 at 10:57:44PM +0200, Dominik Brodowski wrote:
> On Mon, May 14, 2018 at 10:46:40AM +0100, Mark Rutland wrote:
> > Note that we play games with sys_ni_syscall(). It can't be defined with
> > SYSCALL_DEFINE0() because we must avoid the possibility of error
> > injection. Additionally, there are a couple of locations where we need
> > to call it from C code, and we don't (currently) have a
> > ksys_ni_syscall().  While it has no wrapper, passing in a redundant
> > pt_regs pointer is benign per the AAPCS.
> > 
> > When ARCH_HAS_SYSCALL_WRAPPER is selected, no prototype is define for
> > sys_ni_syscall(). Since we need to treat it differently for in-kernel
> > calls and the syscall tables, the prototype is defined as-required.
> 
> > Largely the wrappers are largely the same as their x86 counterparts, but
> 
> That's one "Largely" too much.

True. I've dropped the first instance.

> > simplified as we don't have a variety of compat calling conventions that
> > require separate stubs. Unlike x86, we have some zero-argument compat
> > syscalls, and must define COMPAT_SYSCALL_DEFINE0().
> 
> ... for consistent naming, or is there another reason for that?

For consistent naming.

I've ammended that to say:

  Unlike x86, we have some zero-argument compat syscalls, and must define
  COMPAT_SYSCALL_DEFINE0() to ensure these are also given an
  __arm64_compat_sys_ prefix.

... though I am tempted to refactor this so that our *SYSCALL_DEFINE0() and
SYSCALL_DEFINEx() share the same wrapper generation logic. The differing
prototypes don't matter per our calling convention, but IIRC some CFI features
aren't happy otherwise, and it would be nice to be consistent.

Thanks,
Mark.

      reply	other threads:[~2018-05-15  8:37 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-14  9:46 [PATCH 00/18] arm64: invoke syscalls with pt_regs Mark Rutland
2018-05-14  9:46 ` [PATCH 01/18] arm64: consistently use unsigned long for thread flags Mark Rutland
2018-05-14  9:57   ` Dave Martin
2018-05-14  9:46 ` [PATCH 02/18] arm64: move SCTLR_EL{1,2} assertions to <asm/sysreg.h> Mark Rutland
2018-05-14 10:00   ` Dave Martin
2018-05-14 10:08     ` Mark Rutland
2018-05-14 11:20       ` Dave Martin
2018-05-14 11:56         ` Robin Murphy
2018-05-14 12:06           ` Mark Rutland
2018-05-14 12:41             ` Dave Martin
2018-05-14 13:10               ` Mark Rutland
2018-05-14  9:46 ` [PATCH 03/18] arm64: introduce sysreg_clear_set() Mark Rutland
2018-05-14 10:04   ` Dave Martin
2018-05-14  9:46 ` [PATCH 04/18] arm64: kill config_sctlr_el1() Mark Rutland
2018-05-14 10:05   ` Dave Martin
2018-05-14  9:46 ` [PATCH 05/18] arm64: kill change_cpacr() Mark Rutland
2018-05-14 10:06   ` Dave Martin
2018-05-14  9:46 ` [PATCH 06/18] arm64: move sve_user_{enable,disable} to <asm/fpsimd.h> Mark Rutland
2018-05-14 11:06   ` [PATCH 06/18] arm64: move sve_user_{enable, disable} " Dave Martin
2018-05-15 10:39     ` Mark Rutland
2018-05-15 12:19       ` Dave Martin
2018-05-15 16:33         ` Mark Rutland
2018-05-16  9:01           ` Dave Martin
2018-06-01 10:29             ` Mark Rutland
2018-06-01 10:42               ` Dave Martin
2018-05-14  9:46 ` [PATCH 07/18] arm64: remove sigreturn wrappers Mark Rutland
2018-05-14 11:07   ` Dave Martin
2018-05-14  9:46 ` [PATCH 08/18] arm64: convert raw syscall invocation to C Mark Rutland
2018-05-14 11:07   ` Dave Martin
2018-05-14 11:41     ` Mark Rutland
2018-05-14 12:53       ` Dave Martin
2018-05-14 20:24       ` Dominik Brodowski
2018-05-15  8:22         ` Mark Rutland
2018-05-15 10:01           ` Dominik Brodowski
2018-05-15 10:13             ` Mark Rutland
2018-05-14 18:00   ` Dominik Brodowski
2018-05-15  8:18     ` Mark Rutland
2018-05-14  9:46 ` [PATCH 09/18] arm64: convert syscall trace logic " Mark Rutland
2018-05-14  9:46 ` [PATCH 10/18] arm64: convert native/compat syscall entry " Mark Rutland
2018-05-14 11:07   ` Dave Martin
2018-05-14 11:58     ` Mark Rutland
2018-05-14 14:43       ` Dave Martin
2018-05-14 15:01         ` Mark Rutland
2018-05-14  9:46 ` [PATCH 11/18] arm64: zero GPRs upon entry from EL0 Mark Rutland
2018-05-14 11:07   ` Dave Martin
2018-05-14  9:46 ` [PATCH 12/18] kernel: add ksys_personality() Mark Rutland
2018-05-14 11:08   ` Dave Martin
2018-05-14 12:07   ` Christoph Hellwig
2018-05-15  9:56     ` Mark Rutland
2018-05-14  9:46 ` [PATCH 13/18] kernel: add kcompat_sys_{f,}statfs64() Mark Rutland
2018-05-14 17:14   ` Mark Rutland
2018-05-14 20:34     ` Dominik Brodowski
2018-05-15  9:53       ` Mark Rutland
2018-05-15  9:58         ` Dominik Brodowski
2018-05-14  9:46 ` [PATCH 14/18] arm64: remove in-kernel call to sys_personality() Mark Rutland
2018-05-14  9:46 ` [PATCH 15/18] arm64: use {COMPAT,}SYSCALL_DEFINE0 for sigreturn Mark Rutland
2018-05-14  9:46 ` [PATCH 16/18] arm64: use SYSCALL_DEFINE6() for mmap Mark Rutland
2018-05-14  9:46 ` [PATCH 17/18] arm64: convert compat wrappers to C Mark Rutland
2018-05-14 12:10   ` Christoph Hellwig
2018-05-14 12:43     ` Mark Rutland
2018-05-14  9:46 ` [PATCH 18/18] arm64: implement syscall wrappers Mark Rutland
2018-05-14 20:57   ` Dominik Brodowski
2018-05-15  8:37     ` Mark Rutland [this message]

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=20180515083715.tcy5xzldkcvixez6@salmiak \
    --to=mark.rutland@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dave.martin@arm.com \
    --cc=james.morse@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=marc.zyngier@arm.com \
    --cc=viro@zeniv.linux.org.uk \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).