From: David Miller <davem@davemloft.net>
To: drysdale@google.com
Cc: sfr@canb.auug.org.au, ebiederm@xmission.com, luto@amacapital.net,
viro@zeniv.linux.org.uk, meredydd@senatehouse.org,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
tglx@linutronix.de, oleg@redhat.com, mtk.manpages@gmail.com,
mingo@redhat.com, hpa@zytor.com, keescook@chromium.org,
arnd@arndb.de, dalias@aerifal.cx, hch@infradead.org,
x86@kernel.org, linux-arch@vger.kernel.org,
linux-api@vger.kernel.org, sparclinux@vger.kernel.org
Subject: Re: [PATCHv9 4/5] sparc: Hook up execveat system call.
Date: Fri, 21 Nov 2014 15:08:36 -0500 (EST) [thread overview]
Message-ID: <20141121.150836.687566774013830023.davem@davemloft.net> (raw)
In-Reply-To: <CAHse=S--yNmP5sTr2kg_7kb2V8Lh2FioTSH_o23MstVrdt4Wmw@mail.gmail.com>
From: David Drysdale <drysdale@google.com>
Date: Thu, 20 Nov 2014 11:28:22 +0000
> On Wed, Nov 19, 2014 at 11:42 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>> Hi David,
>>
>> On Wed, 19 Nov 2014 17:27:51 +0000 David Drysdale <drysdale@google.com> wrote:
>>>
>>> diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
>>> index 580cde9370c9..15069cb35dac 100644
>>> --- a/arch/sparc/kernel/systbls_64.S
>>> +++ b/arch/sparc/kernel/systbls_64.S
>>> @@ -88,6 +88,7 @@ sys_call_table32:
>>> .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
>>> /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
>>> .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
>>> +/*350*/ .word sys_execveat
>>
>> Shouldn't this be compat_sys_execveat?
>
> Yeah, that would make sense -- thanks for spotting.
>
> Looking at this more closely, I also wonder if we need a pair of wrappers
> analogous to sys(32|64)_execve -- they include a (pipeline-executed)
> flushw instruction after the jmpl to [compat_]sys_execve, which I guess
> might be needed. So I could add something like the following to
> arch/sparc/kernel/syscalls.S:
>
> sys64_execveat:
> set sys_execveat, %g1
> jmpl %g1, %g0
> flushw
> #ifdef CONFIG_COMPAT
> sys32_execveat:
> set compat_sys_execveat, %g1
> jmpl %g1, %g0
> flushw
> #endif
>
> However, I don't speak SPARC and can't run the code -- any thoughts
> out there from someone who does & can?
>
> Or maybe I should stop trying to be helpful with speculative patches, and
> just leave wiring up the sparc stuff to the experts...
You need wrappers for execve() like system calls yes, in order to flush all
of the user register windows to the stack before the kill the address space.
I think your code snippet above is fine, except that you should indent
the flushw by one space more because it is in the delay slot of a
control transfer instruction.
Thanks.
next prev parent reply other threads:[~2014-11-21 20:08 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-19 17:27 [PATCHv9 0/5] syscalls,x86,sparc: Add execveat() system call David Drysdale
2014-11-19 17:27 ` [PATCHv9 1/5] syscalls: implement " David Drysdale
2014-11-19 17:27 ` [PATCHv9 2/5] x86: Hook up execveat " David Drysdale
[not found] ` <1416418072-18639-1-git-send-email-drysdale-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2014-11-19 17:27 ` [PATCHv9 3/5] syscalls: add selftest for execveat(2) David Drysdale
2014-11-19 17:27 ` [PATCHv9 4/5] sparc: Hook up execveat system call David Drysdale
2014-11-19 23:42 ` Stephen Rothwell
[not found] ` <20141120104223.2cea8043-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>
2014-11-20 11:28 ` David Drysdale
2014-11-21 20:08 ` David Miller [this message]
2014-11-19 17:27 ` [PATCHv9 man-pages 5/5] execveat.2: initial man page for execveat(2) David Drysdale
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=20141121.150836.687566774013830023.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=dalias@aerifal.cx \
--cc=drysdale@google.com \
--cc=ebiederm@xmission.com \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=meredydd@senatehouse.org \
--cc=mingo@redhat.com \
--cc=mtk.manpages@gmail.com \
--cc=oleg@redhat.com \
--cc=sfr@canb.auug.org.au \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@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 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).