No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Josh Poimboeuf 07c4cd680c x86/entry/64: Fix unwind hints in register clearing code
commit 06a9750edcffa808494d56da939085c35904e618 upstream.

The PUSH_AND_CLEAR_REGS macro zeroes each register immediately after
pushing it.  If an NMI or exception hits after a register is cleared,
but before the UNWIND_HINT_REGS annotation, the ORC unwinder will
wrongly think the previous value of the register was zero.  This can
confuse the unwinding process and cause it to exit early.

Because ORC is simpler than DWARF, there are a limited number of unwind
annotation states, so it's not possible to add an individual unwind hint
after each push/clear combination.  Instead, the register clearing
instructions need to be consolidated and moved to after the
UNWIND_HINT_REGS annotation.

Fixes: 3f01daecd5 ("x86/entry/64: Introduce the PUSH_AND_CLEAN_REGS macro")
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Dave Jones <dsj@fb.com>
Cc: Jann Horn <jannh@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Link: https://lore.kernel.org/r/68fd3d0bc92ae2d62ff7879d15d3684217d51f08.1587808742.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-14 07:58:28 +02:00
arch x86/entry/64: Fix unwind hints in register clearing code 2020-05-14 07:58:28 +02:00
block iocost: protect iocg->abs_vdebt with iocg->waitq.lock 2020-05-14 07:58:27 +02:00
certs
crypto
Documentation
drivers staging: gasket: Check the return value of gasket_get_bar_index() 2020-05-14 07:58:27 +02:00
fs coredump: fix crash when umh is disabled 2020-05-14 07:58:27 +02:00
include tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040 2020-05-14 07:58:22 +02:00
init
ipc ipc/mqueue.c: change __do_notify() to bypass check_kill_permission() 2020-05-14 07:58:26 +02:00
kernel coredump: fix crash when umh is disabled 2020-05-14 07:58:27 +02:00
lib lib: devres: add a helper function for ioremap_uc 2020-05-10 10:31:30 +02:00
LICENSES
mm mm: limit boost_watermark on small zones 2020-05-14 07:58:26 +02:00
net batman-adv: Fix refcnt leak in batadv_v_ogm_process 2020-05-14 07:58:28 +02:00
samples
scripts scripts/config: allow colons in option strings for sed 2020-05-10 10:31:27 +02:00
security
sound ALSA: hda: Match both PCI ID and SSID for driver blacklist 2020-05-10 10:31:31 +02:00
tools iocost: protect iocg->abs_vdebt with iocg->waitq.lock 2020-05-14 07:58:27 +02:00
usr
virt KVM: arm64: Fix 32bit PC wrap-around 2020-05-14 07:58:26 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.40 2020-05-10 10:31:34 +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.