All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yury Norov <ynorov@caviumnetworks.com>
To: <heiko.carstens@de.ibm.com>, <arnd@arndb.de>,
	<catalin.marinas@arm.com>, <linux-kernel@vger.kernel.org>,
	<linux-s390@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-arch@vger.kernel.org>, <linux-doc@vger.kernel.org>
Cc: <Prasun.Kapoor@caviumnetworks.com>, <pinskia@gmail.com>,
	<agraf@suse.de>, <broonie@kernel.org>, <joseph@codesourcery.com>,
	<christoph.muellner@theobroma-systems.com>,
	<Nathan_Lynch@mentor.com>, <klimov.linux@gmail.com>,
	<bamvor.zhangjian@huawei.com>,
	Yury Norov <ynorov@caviumnetworks.com>
Subject: [PATCH v3 0/5] all: s390: make compat wrappers the generic solution
Date: Fri, 26 Feb 2016 17:34:50 +0300	[thread overview]
Message-ID: <1456497295-22991-1-git-send-email-ynorov@caviumnetworks.com> (raw)

The problem that makes us use wrappers is that some compat
architectures allows user code to access top halves of registers.
This is not a problem for syscalls that are already handled by compat
code, or for that who has types of the same size in kernel and
userspace. In case of s390 and lp64/ilp32 the problem is in pointer
types, long, unsigned long.

S390 folks already have the solution for it. In this patchset,
it is turned to be general, as arm64/ilp32 needs it too.

This patchset is created as the part of the work of enabling arm64
with ILP32 user mode. See details here:
http://thread.gmane.org/gmane.linux.kernel/2126946

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>

v2:
 This is the implementation of one of two possible approaches. First
 one defines new syscall handler declaration macro, that creates both compat and
 non-compat handlers, see [1]. This one declares all wrappers in separated file
 kernel/compat_wrapper.c

v3: 
 - move 2 s390-related wrappers from kernel/compat_wrappers.h
   to arch/s390/kernel/compat_linux.c
 - comments extended
Build-tested on s390.

[1] http://www.spinics.net/lists/linux-s390/msg11593.html

Yury Norov (5):
  all: syscall wrappers: add documentation
  all: introduce COMPAT_WRAPPER option and enable it for s390
  all: s390: move wrapper infrastructure to generic headers
  all: s390: move compat_wrappers.c from arch/s390/kernel to kernel/
  all: wrap needed syscalls in generic unistd

 Documentation/adding-syscalls.txt |  32 +++++
 arch/Kconfig                      |   4 +
 arch/s390/Kconfig                 |   1 +
 arch/s390/include/asm/compat.h    |  17 ++-
 arch/s390/kernel/Makefile         |   2 +-
 arch/s390/kernel/compat_wrapper.c | 180 ------------------------
 include/linux/compat.h            | 278 ++++++++++++++++++++++++++++++++++++++
 include/linux/syscalls.h          |  57 +-------
 include/linux/syscalls_structs.h  |  60 ++++++++
 include/uapi/asm-generic/unistd.h | 231 +++++++++++++++----------------
 kernel/Makefile                   |   1 +
 kernel/compat_wrapper.c           | 170 +++++++++++++++++++++++
 12 files changed, 680 insertions(+), 353 deletions(-)
 delete mode 100644 arch/s390/kernel/compat_wrapper.c
 create mode 100644 include/linux/syscalls_structs.h
 create mode 100644 kernel/compat_wrapper.c

-- 
2.5.0

WARNING: multiple messages have this Message-ID (diff)
From: Yury Norov <ynorov@caviumnetworks.com>
To: heiko.carstens@de.ibm.com, arnd@arndb.de,
	catalin.marinas@arm.com, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-arch@vger.kernel.org, linux-doc@vger.kernel.org
Cc: Prasun.Kapoor@caviumnetworks.com, pinskia@gmail.com,
	agraf@suse.de, broonie@kernel.org, joseph@codesourcery.com,
	christoph.muellner@theobroma-systems.com,
	Nathan_Lynch@mentor.com, klimov.linux@gmail.com,
	bamvor.zhangjian@huawei.com,
	Yury Norov <ynorov@caviumnetworks.com>
Subject: [PATCH v3 0/5] all: s390: make compat wrappers the generic solution
Date: Fri, 26 Feb 2016 17:34:50 +0300	[thread overview]
Message-ID: <1456497295-22991-1-git-send-email-ynorov@caviumnetworks.com> (raw)

The problem that makes us use wrappers is that some compat
architectures allows user code to access top halves of registers.
This is not a problem for syscalls that are already handled by compat
code, or for that who has types of the same size in kernel and
userspace. In case of s390 and lp64/ilp32 the problem is in pointer
types, long, unsigned long.

S390 folks already have the solution for it. In this patchset,
it is turned to be general, as arm64/ilp32 needs it too.

This patchset is created as the part of the work of enabling arm64
with ILP32 user mode. See details here:
http://thread.gmane.org/gmane.linux.kernel/2126946

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>

v2:
 This is the implementation of one of two possible approaches. First
 one defines new syscall handler declaration macro, that creates both compat and
 non-compat handlers, see [1]. This one declares all wrappers in separated file
 kernel/compat_wrapper.c

v3: 
 - move 2 s390-related wrappers from kernel/compat_wrappers.h
   to arch/s390/kernel/compat_linux.c
 - comments extended
Build-tested on s390.

[1] http://www.spinics.net/lists/linux-s390/msg11593.html

Yury Norov (5):
  all: syscall wrappers: add documentation
  all: introduce COMPAT_WRAPPER option and enable it for s390
  all: s390: move wrapper infrastructure to generic headers
  all: s390: move compat_wrappers.c from arch/s390/kernel to kernel/
  all: wrap needed syscalls in generic unistd

 Documentation/adding-syscalls.txt |  32 +++++
 arch/Kconfig                      |   4 +
 arch/s390/Kconfig                 |   1 +
 arch/s390/include/asm/compat.h    |  17 ++-
 arch/s390/kernel/Makefile         |   2 +-
 arch/s390/kernel/compat_wrapper.c | 180 ------------------------
 include/linux/compat.h            | 278 ++++++++++++++++++++++++++++++++++++++
 include/linux/syscalls.h          |  57 +-------
 include/linux/syscalls_structs.h  |  60 ++++++++
 include/uapi/asm-generic/unistd.h | 231 +++++++++++++++----------------
 kernel/Makefile                   |   1 +
 kernel/compat_wrapper.c           | 170 +++++++++++++++++++++++
 12 files changed, 680 insertions(+), 353 deletions(-)
 delete mode 100644 arch/s390/kernel/compat_wrapper.c
 create mode 100644 include/linux/syscalls_structs.h
 create mode 100644 kernel/compat_wrapper.c

-- 
2.5.0

WARNING: multiple messages have this Message-ID (diff)
From: ynorov@caviumnetworks.com (Yury Norov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 0/5] all: s390: make compat wrappers the generic solution
Date: Fri, 26 Feb 2016 17:34:50 +0300	[thread overview]
Message-ID: <1456497295-22991-1-git-send-email-ynorov@caviumnetworks.com> (raw)

The problem that makes us use wrappers is that some compat
architectures allows user code to access top halves of registers.
This is not a problem for syscalls that are already handled by compat
code, or for that who has types of the same size in kernel and
userspace. In case of s390 and lp64/ilp32 the problem is in pointer
types, long, unsigned long.

S390 folks already have the solution for it. In this patchset,
it is turned to be general, as arm64/ilp32 needs it too.

This patchset is created as the part of the work of enabling arm64
with ILP32 user mode. See details here:
http://thread.gmane.org/gmane.linux.kernel/2126946

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>

v2:
 This is the implementation of one of two possible approaches. First
 one defines new syscall handler declaration macro, that creates both compat and
 non-compat handlers, see [1]. This one declares all wrappers in separated file
 kernel/compat_wrapper.c

v3: 
 - move 2 s390-related wrappers from kernel/compat_wrappers.h
   to arch/s390/kernel/compat_linux.c
 - comments extended
Build-tested on s390.

[1] http://www.spinics.net/lists/linux-s390/msg11593.html

Yury Norov (5):
  all: syscall wrappers: add documentation
  all: introduce COMPAT_WRAPPER option and enable it for s390
  all: s390: move wrapper infrastructure to generic headers
  all: s390: move compat_wrappers.c from arch/s390/kernel to kernel/
  all: wrap needed syscalls in generic unistd

 Documentation/adding-syscalls.txt |  32 +++++
 arch/Kconfig                      |   4 +
 arch/s390/Kconfig                 |   1 +
 arch/s390/include/asm/compat.h    |  17 ++-
 arch/s390/kernel/Makefile         |   2 +-
 arch/s390/kernel/compat_wrapper.c | 180 ------------------------
 include/linux/compat.h            | 278 ++++++++++++++++++++++++++++++++++++++
 include/linux/syscalls.h          |  57 +-------
 include/linux/syscalls_structs.h  |  60 ++++++++
 include/uapi/asm-generic/unistd.h | 231 +++++++++++++++----------------
 kernel/Makefile                   |   1 +
 kernel/compat_wrapper.c           | 170 +++++++++++++++++++++++
 12 files changed, 680 insertions(+), 353 deletions(-)
 delete mode 100644 arch/s390/kernel/compat_wrapper.c
 create mode 100644 include/linux/syscalls_structs.h
 create mode 100644 kernel/compat_wrapper.c

-- 
2.5.0

             reply	other threads:[~2016-02-26 14:35 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-26 14:34 Yury Norov [this message]
2016-02-26 14:34 ` [PATCH v3 0/5] all: s390: make compat wrappers the generic solution Yury Norov
2016-02-26 14:34 ` Yury Norov
2016-02-26 14:34 ` [PATCH 1/5] all: syscall wrappers: add documentation Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34 ` [PATCH 2/5] all: introduce COMPAT_WRAPPER option and enable it for s390 Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34 ` [PATCH 3/5] all: s390: move wrapper infrastructure to generic headers Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34 ` [PATCH 4/5] all: s390: move compat_wrappers.c from arch/s390/kernel to kernel Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34 ` [PATCH 5/5] all: wrap needed syscalls in generic unistd Yury Norov
2016-02-26 14:34   ` Yury Norov
2016-02-26 14:34   ` Yury Norov

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=1456497295-22991-1-git-send-email-ynorov@caviumnetworks.com \
    --to=ynorov@caviumnetworks.com \
    --cc=Nathan_Lynch@mentor.com \
    --cc=Prasun.Kapoor@caviumnetworks.com \
    --cc=agraf@suse.de \
    --cc=arnd@arndb.de \
    --cc=bamvor.zhangjian@huawei.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoph.muellner@theobroma-systems.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=joseph@codesourcery.com \
    --cc=klimov.linux@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pinskia@gmail.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.