From: Peter Collingbourne <pcc@google.com>
To: Catalin Marinas <catalin.marinas@arm.com>,
Evgenii Stepanov <eugenis@google.com>,
Kostya Serebryany <kcc@google.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Dave Martin <Dave.Martin@arm.com>, Will Deacon <will@kernel.org>,
Oleg Nesterov <oleg@redhat.com>,
"Eric W. Biederman" <ebiederm@xmission.com>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>
Cc: Andrey Konovalov <andreyknvl@google.com>,
Helge Deller <deller@gmx.de>,
Kevin Brodsky <kevin.brodsky@arm.com>,
linux-api@vger.kernel.org,
David Spickett <david.spickett@linaro.org>,
Peter Collingbourne <pcc@google.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Richard Henderson <rth@twiddle.net>
Subject: [PATCH v11 0/8] arm64: expose FAR_EL1 tag bits in siginfo
Date: Thu, 8 Oct 2020 17:44:11 -0700 [thread overview]
Message-ID: <cover.1602204097.git.pcc@google.com> (raw)
The kernel currently clears the tag bits (i.e. bits 56-63) in the fault
address exposed via siginfo.si_addr and sigcontext.fault_address. However,
the tag bits may be needed by tools in order to accurately diagnose
memory errors, such as HWASan [1] or future tools based on the Memory
Tagging Extension (MTE).
We should not stop clearing these bits in the existing fault address
fields, because there may be existing userspace applications that are
expecting the tag bits to be cleared. Instead, create a new pair of
union fields in siginfo._sigfault, and store the tag bits of FAR_EL1
there, together with a mask specifying which bits are valid.
However, one does not simply add fields to siginfo, at least not without
a mechanism for userspace to detect that they are present and valid.
Therefore, the first seven patches in this series introduce a mechanism
for userspace to detect the presence of our new siginfo fields,
and the last patch uses it to advertise the presence of said fields.
The series can be viewed on Gerrit here:
https://linux-review.googlesource.com/q/Ia8876bad8c798e0a32df7c2ce1256c4771c81446
[1] http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
Helge Deller (1):
parisc: Drop parisc special case for __sighandler_t
Peter Collingbourne (7):
parisc: start using signal-defs.h
arch: move SA_* definitions to generic headers
signal: clear non-uapi flag bits when passing/returning sa_flags
signal: define the SA_UNSUPPORTED bit in sa_flags
signal: deduplicate code dealing with common _sigfault fields
signal: define the field siginfo.si_xflags
arm64: expose FAR_EL1 tag bits in siginfo
Documentation/arm64/tagged-pointers.rst | 21 +++-
arch/alpha/include/uapi/asm/signal.h | 14 ---
arch/arm/include/asm/signal.h | 2 +
arch/arm/include/uapi/asm/signal.h | 28 +----
arch/arm64/include/asm/exception.h | 2 +-
arch/arm64/include/asm/signal.h | 17 +++
arch/arm64/include/asm/system_misc.h | 2 +-
arch/arm64/include/asm/traps.h | 6 +-
arch/arm64/kernel/debug-monitors.c | 5 +-
arch/arm64/kernel/entry-common.c | 2 -
arch/arm64/kernel/ptrace.c | 7 +-
arch/arm64/kernel/sys_compat.c | 5 +-
arch/arm64/kernel/traps.c | 29 ++---
arch/arm64/mm/fault.c | 59 ++++-----
arch/h8300/include/uapi/asm/signal.h | 24 ----
arch/ia64/include/uapi/asm/signal.h | 24 ----
arch/m68k/include/uapi/asm/signal.h | 24 ----
arch/mips/include/uapi/asm/signal.h | 12 --
arch/parisc/include/asm/signal.h | 2 +
arch/parisc/include/uapi/asm/signal.h | 34 +-----
arch/powerpc/include/uapi/asm/signal.h | 24 ----
arch/powerpc/platforms/powernv/vas-fault.c | 1 +
arch/s390/include/uapi/asm/signal.h | 24 ----
arch/sparc/include/uapi/asm/signal.h | 4 +-
arch/x86/include/uapi/asm/signal.h | 24 ----
arch/x86/kernel/signal_compat.c | 11 +-
arch/xtensa/include/uapi/asm/signal.h | 24 ----
include/linux/compat.h | 4 +
include/linux/signal.h | 29 +++++
include/linux/signal_types.h | 12 ++
include/uapi/asm-generic/siginfo.h | 14 +++
include/uapi/asm-generic/signal-defs.h | 58 +++++++++
include/uapi/asm-generic/signal.h | 29 -----
include/uapi/linux/ptrace.h | 12 ++
kernel/ptrace.c | 32 ++++-
kernel/signal.c | 134 +++++++++++----------
36 files changed, 328 insertions(+), 427 deletions(-)
create mode 100644 arch/arm64/include/asm/signal.h
--
2.28.0.1011.ga647a8990f-goog
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-10-09 0:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-09 0:44 Peter Collingbourne [this message]
2020-10-09 0:44 ` [PATCH v11 1/8] parisc: Drop parisc special case for __sighandler_t Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 2/8] parisc: start using signal-defs.h Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 3/8] arch: move SA_* definitions to generic headers Peter Collingbourne
2020-10-09 7:49 ` Geert Uytterhoeven
2020-10-09 15:47 ` Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 4/8] signal: clear non-uapi flag bits when passing/returning sa_flags Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 5/8] signal: define the SA_UNSUPPORTED bit in sa_flags Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 6/8] signal: deduplicate code dealing with common _sigfault fields Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 7/8] signal: define the field siginfo.si_xflags Peter Collingbourne
2020-10-09 0:44 ` [PATCH v11 8/8] arm64: expose FAR_EL1 tag bits in siginfo Peter Collingbourne
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=cover.1602204097.git.pcc@google.com \
--to=pcc@google.com \
--cc=Dave.Martin@arm.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=andreyknvl@google.com \
--cc=catalin.marinas@arm.com \
--cc=david.spickett@linaro.org \
--cc=deller@gmx.de \
--cc=ebiederm@xmission.com \
--cc=eugenis@google.com \
--cc=kcc@google.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=oleg@redhat.com \
--cc=rth@twiddle.net \
--cc=vincenzo.frascino@arm.com \
--cc=will@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).