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

From: [email-masked] (Vivek Goyal)
Date: Tue, 12 Aug 2014 08:37:36 -0400

On Tue, Aug 12, 2014 at 12:10:30PM +0100, Will Deacon wrote:
> 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.

Yes, at this point of time, this system call will work only on x86. Agreed
that primarily it is file format details which are primarily in arch
specific section.

I think that some of the code will become arch independent as other
arches start implementing this syscall. 

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

I thought that for other arches I have not even defined the syscall. So
it probably will fail with -ENOSYS.

Thanks
Vivek