From: Heiko Carstens <heiko.carstens@de.ibm.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-s390@vger.kernel.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
linux-kernel@vger.kernel.org, y2038@lists.linaro.org,
Dominik Brodowski <linux@dominikbrodowski.net>,
Mark Rutland <mark.rutland@arm.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
Andrew Morton <akpm@linux-foundation.org>,
Vasily Gorbik <gor@linux.ibm.com>
Subject: Re: [PATCH 4/5] s390: autogenerate compat syscall wrappers
Date: Thu, 17 Jan 2019 14:31:15 +0100 [thread overview]
Message-ID: <20190117133115.GC18351@osiris> (raw)
In-Reply-To: <20190116131527.2071570-5-arnd@arndb.de>
On Wed, Jan 16, 2019 at 02:15:22PM +0100, Arnd Bergmann wrote:
> Any system call that takes a pointer argument on s390 requires
> a wrapper function to do a 31-to-64 zero-extension, these are
> currently generated in arch/s390/kernel/compat_wrapper.c.
>
> On arm64 and x86, we already generate similar wrappers for all
> system calls in the place of their definition, just for a different
> purpose (they load the arguments from pt_regs).
>
> We can do the same thing here, by adding an asm/syscall_wrapper.h
> file with a copy of all the relevant macros to override the generic
> version. Besides the addition of the compat entry point, these also
> rename the entry points with a __s390_ or __s390x_ prefix, similar
> to what we do on arm64 and x86. This in turn requires renaming
> a few things, and adding a proper ni_syscall() entry point.
>
> In order to still compile system call definitions that pass an
> loff_t argument, the __SC_COMPAT_CAST() macro checks for that
> and forces an -ENOSYS error, which was the best I could come up
> with. Those functions must obviously not get called from user
> space, but instead require hand-written compat_sys_*() handlers,
> which fortunately already exist.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/s390/Kconfig | 1 +
> arch/s390/include/asm/syscall_wrapper.h | 136 ++++++++++++++++++++++++
> arch/s390/kernel/compat_wrapper.c | 23 +---
> arch/s390/kernel/entry.S | 4 +-
> arch/s390/kernel/sys_s390.c | 5 +
> 5 files changed, 148 insertions(+), 21 deletions(-)
> create mode 100644 arch/s390/include/asm/syscall_wrapper.h
The patch below is needed as compile fix (allnoconfig).
I will add this to your patch, no resend needed.
diff --git a/arch/s390/include/asm/syscall_wrapper.h b/arch/s390/include/asm/syscall_wrapper.h
index 27ebe871692f..873e7a7794b3 100644
--- a/arch/s390/include/asm/syscall_wrapper.h
+++ b/arch/s390/include/asm/syscall_wrapper.h
@@ -106,11 +106,10 @@
asmlinkage long __s390x_sys_##sname(void)
#define COND_SYSCALL(name) \
- cond_syscall(__s390x_sys_##name) \
- cond_syscall(__s390_sys_##name)
+ cond_syscall(__s390x_sys_##name)
#define SYS_NI(name) \
- SYSCALL_ALIAS(__s390_sys_##name, sys_ni_posix_timers);
+ SYSCALL_ALIAS(__s390x_sys_##name, sys_ni_posix_timers);
#endif /* CONFIG_COMPAT */
next prev parent reply other threads:[~2019-01-17 13:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-16 13:15 [PATCH 0/5] s390: rework compat wrapper generation Arnd Bergmann
2019-01-16 13:15 ` [PATCH 1/5] s390: open-code s390_personality syscall Arnd Bergmann
2019-01-16 13:15 ` [PATCH 2/5] ipc: introduce ksys_ipc()/compat_ksys_ipc() for s390 Arnd Bergmann
2019-01-17 13:29 ` Heiko Carstens
2019-01-17 16:29 ` Arnd Bergmann
2019-01-17 20:13 ` Heiko Carstens
2019-01-16 13:15 ` [PATCH 3/5] s390: use generic UID16 implementation Arnd Bergmann
2019-01-16 13:15 ` [PATCH 4/5] s390: autogenerate compat syscall wrappers Arnd Bergmann
2019-01-17 13:31 ` Heiko Carstens [this message]
2019-01-17 16:23 ` Arnd Bergmann
2019-01-21 9:43 ` Heiko Carstens
2019-01-16 13:15 ` [PATCH 5/5] s390: remove compat_wrapper.c Arnd Bergmann
2019-01-16 15:12 ` [PATCH 0/5] s390: rework compat wrapper generation Heiko Carstens
2019-01-17 13:36 ` Heiko Carstens
2019-01-17 16:21 ` Arnd Bergmann
2019-01-17 20:19 ` Heiko Carstens
2019-01-18 8:48 ` Martin Schwidefsky
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=20190117133115.GC18351@osiris \
--to=heiko.carstens@de.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=gor@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=mark.rutland@arm.com \
--cc=schwidefsky@de.ibm.com \
--cc=y2038@lists.linaro.org \
--cc=yamada.masahiro@socionext.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.