Subject: [PATCH 2/2] asm-generic: add memfd_create system call to unistd.h

From: [email-masked] (Will Deacon)
Date: Tue, 12 Aug 2014 12:10:30 +0100

On Tue, Aug 12, 2014 at 11:27:34AM +0100, Will Deacon wrote:
> On Mon, Aug 11, 2014 at 08:37:41PM +0100, Geert Uytterhoeven wrote:
> > On Mon, Aug 11, 2014 at 8:57 PM, Arnd Bergmann <[email-masked]> wrote:
> > > On Monday 11 August 2014, Will Deacon wrote:
> > >> On Mon, Aug 11, 2014 at 05:54:08PM +0100, David Herrmann wrote:
> > >> > On Mon, Aug 11, 2014 at 3:37 PM, Will Deacon <[email-masked]> wrote:
> > >> > > Commit 9183df25fe7b ("shm: add memfd_create() syscall") added a new
> > >> > > system call (memfd_create) but didn't update the asm-generic unistd
> > >> > > header.
> > >> > >
> > >> > > This patch adds the new system call to the asm-generic version of
> > >> > > unistd.h so that it can be used by architectures such as arm64.
> > >> > >
> > >> > > Cc: Arnd Bergmann <[email-masked]>
> > >> > > Cc: David Herrmann <[email-masked]>
> > >> > > Signed-off-by: Will Deacon <[email-masked]>
> > >> >
> > >> > Reviewed-by: David Herrmann <[email-masked]>
> > >>
> > >> Thanks, David.
> > >>
> > >> Arnd: shall I take this via the arm64 tree, or do you already have some
> > >> asm-generic patches queued?
> > >
> > > Please take it for arm64, I don't have any other patches queued at the moment
> > > and am currently on vacation.
> > 
> > Thanks, I was just going to look into adding it...
> > 
> > BTW, another one sneaked in: kexec_file_load. I say "sneaked", as
> > scripts/checksyscalls.sh doesn't catch it, due to it being wired up on
> > amd64 only.
> 
> Oh, well spotted!
> 
> > Will, you can please add that one, too, while you're at it?
> 
> Sure, I'll add an extra patch and repost.

Hmm, so whilst I can easily wire-up the new syscall, it's pretty useless for
anybody other than x86 at the moment. There are a bunch of arch helpers:

 arch_kexec_kernel_image_probe
 arch_kexec_kernel_verify_sig
 arch_kexec_kernel_image_load
 arch_kimage_file_post_load_cleanup

which are only implemented for x86 (arch/x86/kernel/machine_kexec_64.c),
even though I don't really see what makes them arch-specific as opposed to
file format specific.

So this syscall will always fail with -ENOEXEC at the moment. Is it still
worth wiring it up?

Will