Linux kernel source tree
Go to file
Ard Biesheuvel 57f4e77a46 UPSTREAM: x86/boot: Provide KASAN compatible aliases for string routines
(Upstream commit c3ee82ce47).

The KASAN subsystem wraps calls to memcpy(), memset() and memmove()
to sanitize the arguments before invoking the actual routines, which
have been renamed to __memcpy(), __memset() and __memmove(),
respectively. When CONFIG_KASAN is enabled for the kernel build but
KASAN code generation is disabled for the compilation unit (which is
needed for things like the EFI stub or the decompressor), the string
routines are just #define'd to their __ prefixed names so that they
are simply invoked directly.

This does however rely on those __ prefixed names to exist in the
symbol namespace, which is not currently the case for the x86
decompressor, which may lead to errors like

  drivers/firmware/efi/libstub/tpm.o: In function `efi_retrieve_tpm2_eventlog':
  tpm.c:(.text+0x2a8): undefined reference to `__memcpy'

So let's expose the __ prefixed symbols in the decompressor when
KASAN is enabled.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matthew Garrett <matthewgarrett@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Bug: 128674696
Change-Id: Iafa1d5db14a3a3ad9ea220c6c45d817a0ee98e41
2019-09-24 17:44:16 -07:00
arch UPSTREAM: x86/boot: Provide KASAN compatible aliases for string routines 2019-09-24 17:44:16 -07:00
block This is the 4.19.73 stable release 2019-09-16 09:35:02 +02:00
certs export.h: remove VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR() 2018-08-22 23:21:44 +09:00
crypto This is the 4.19.61 stable release 2019-07-26 10:31:53 +02:00
Documentation UPSTREAM: kasan: update documentation 2019-09-24 17:44:13 -07:00
drivers This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
firmware kbuild: remove all dummy assignments to obj- 2017-11-18 11:46:06 +09:00
fs This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
include BACKPORT: x86/uaccess: Introduce user_access_{save,restore}() 2019-09-24 17:44:16 -07:00
init ANDROID: net: enable wireless core features with GKI_LEGACY_WEXT_ALLCONFIG 2019-09-20 19:17:14 +00:00
ipc This is the 4.19.65 stable release 2019-08-06 20:08:18 +02:00
kernel This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
lib BACKPORT: kasan: remove use after scope bugs detection. 2019-09-24 17:44:15 -07:00
LICENSES LICENSES: Remove CC-BY-SA-4.0 license text 2018-10-18 11:28:50 +02:00
mm UPSTREAM: x86/uaccess, kasan: Fix KASAN vs SMAP 2019-09-24 17:44:16 -07:00
net This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
samples samples, bpf: suppress compiler warning 2019-07-14 08:11:04 +02:00
scripts BACKPORT: kasan: remove use after scope bugs detection. 2019-09-24 17:44:15 -07:00
security BACKPORT: kasan: remove use after scope bugs detection. 2019-09-24 17:44:15 -07:00
sound UPSTREAM: ALSA: pcm: add support for 352.8KHz and 384KHz sample rate 2019-09-18 20:34:13 +00:00
tools This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
usr initramfs: move gen_initramfs_list.sh from scripts/ to usr/ 2018-08-22 23:21:44 +09:00
virt KVM: coalesced_mmio: add bounds checking 2019-09-21 07:16:44 +02:00
.clang-format clang-format: Set IndentWrappedFunctionNames false 2018-08-01 18:38:51 +02:00
.cocciconfig
.get_maintainer.ignore
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Kbuild updates for v4.17 (2nd) 2018-04-15 17:21:30 -07:00
.mailmap libnvdimm-for-4.19_misc 2018-08-25 18:13:10 -07:00
abi_gki_aarch64.xml ANDROID: enable CONFIG_ION_SYSTEM_HEAP for GKI 2019-09-23 23:26:20 -07:00
build.config.gki.aarch64 Adding GKI Ramdisk to gki config 2019-08-14 18:17:18 +00:00
build.config.gki.x86_64 Adding GKI Ramdisk to gki config 2019-08-14 18:17:18 +00:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS 9p: remove Ron Minnich from MAINTAINERS 2018-08-17 16:20:26 -07:00
Kbuild Kbuild updates for v4.15 2017-11-17 17:45:29 -08:00
Kconfig kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt 2018-08-02 08:06:55 +09:00
MAINTAINERS platform/x86: Add Intel AtomISP2 dummy / power-management driver 2019-04-20 09:16:02 +02:00
Makefile This is the 4.19.75 stable release 2019-09-21 07:55:26 +02:00
README Docs: Added a pointer to the formatted docs to README 2018-03-21 09:02:53 -06:00

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.
See Documentation/00-INDEX for a list of what is contained in each file.

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.