Go to file
Mathieu Desnoyers 4633aa6fad selftests/rseq: Fix: work-around asm goto compiler bugs
commit b53823fb2e upstream.

gcc and clang each have their own compiler bugs with respect to asm
goto. Implement a work-around for compiler versions known to have those
bugs.

gcc prior to 4.8.2 miscompiles asm goto.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670

gcc prior to 8.1.0 miscompiles asm goto at O1.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103908

clang prior to version 13.0.1 miscompiles asm goto at O2.
https://github.com/llvm/llvm-project/issues/52735

Work around these issues by adding a volatile inline asm with
memory clobber in the fallthrough after the asm goto and at each
label target.  Emit this for all compilers in case other similar
issues are found in the future.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20220124171253.22072-14-mathieu.desnoyers@efficios.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-07 17:53:31 +02:00
arch powerpc/memhotplug: Add add_pages override for PPC 2022-07-07 17:53:28 +02:00
block block: Fix handling of offline queues in blk_mq_alloc_request_hctx() 2022-06-22 14:22:02 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:22:01 +02:00
crypto crypto: memneq - move into lib/ 2022-06-22 14:22:03 +02:00
Documentation docs: update mapping documentation 2022-07-02 16:41:15 +02:00
drivers net: tun: avoid disabling NAPI twice 2022-07-07 17:53:29 +02:00
fs io_uring: ensure that send/sendmsg and recv/recvmsg check sqe->ioprio 2022-07-07 17:53:28 +02:00
include linux/dim: Fix divide by 0 in RDMA DIM 2022-07-07 17:53:26 +02:00
init Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug 2022-06-09 10:23:26 +02:00
ipc ipc/mqueue: use get_tree_nodev() in mqueue_get_tree() 2022-06-09 10:23:10 +02:00
kernel tick/nohz: unexport __init-annotated tick_nohz_full_setup() 2022-07-02 16:41:12 +02:00
lib crypto: memneq - move into lib/ 2022-06-22 14:22:03 +02:00
LICENSES LICENSES/dual/CC-BY-4.0: Git rid of "smart quotes" 2021-07-15 06:31:24 -06:00
mm init: Initialize noop_backing_dev_info early 2022-06-22 14:22:02 +02:00
net tcp: add a missing nf_reset_ct() in 3WHS handling 2022-07-07 17:53:29 +02:00
samples samples/landlock: Format with clang-format 2022-06-09 10:23:23 +02:00
scripts modpost: fix section mismatch check for exported init/exit sections 2022-06-29 09:03:31 +02:00
security fs: support mapped mounts of mapped filesystems 2022-07-02 16:41:17 +02:00
sound ALSA: hda/realtek: Add quirk for Clevo NS50PU 2022-06-29 09:03:18 +02:00
tools selftests/rseq: Fix: work-around asm goto compiler bugs 2022-07-07 17:53:31 +02:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2022-02-01 17:27:15 +01:00
virt KVM: avoid NULL pointer dereference in kvm_dirty_ring_push 2022-04-13 20:59:26 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add Andrej Shadura 2021-10-18 20:22:03 -10:00
COPYING
CREDITS MAINTAINERS: Move Daniel Drake to credits 2021-09-21 08:34:58 +03:00
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add Leah as xfs maintainer for 5.15.y 2022-07-07 17:53:29 +02:00
Makefile Linux 5.15.52 2022-07-02 16:41:19 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.