No description
Find a file
Ard Biesheuvel 86c909d227 x86/efistub: Avoid placing the kernel below LOAD_PHYSICAL_ADDR
From: Ard Biesheuvel <ardb@kernel.org>

[ Commit 2f77465b05 upstream ]

The EFI stub's kernel placement logic randomizes the physical placement
of the kernel by taking all available memory into account, and picking a
region at random, based on a random seed.

When KASLR is disabled, this seed is set to 0x0, and this results in the
lowest available region of memory to be selected for loading the kernel,
even if this is below LOAD_PHYSICAL_ADDR. Some of this memory is
typically reserved for the GFP_DMA region, to accommodate masters that
can only access the first 16 MiB of system memory.

Even if such devices are rare these days, we may still end up with a
warning in the kernel log, as reported by Tom:

 swapper/0: page allocation failure: order:10, mode:0xcc1(GFP_KERNEL|GFP_DMA), nodemask=(null),cpuset=/,mems_allowed=0

Fix this by tweaking the random allocation logic to accept a low bound
on the placement, and set it to LOAD_PHYSICAL_ADDR.

Fixes: a1b87d54f4 ("x86/efistub: Avoid legacy decompressor when doing EFI boot")
Reported-by: Tom Englund <tomenglund26@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218404
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-06 14:45:18 +00:00
arch x86/efistub: Avoid legacy decompressor when doing EFI boot 2024-03-06 14:45:18 +00:00
block block: Fix WARNING in _copy_from_iter 2024-03-01 13:26:25 +01:00
certs
crypto crypto: api - Disallow identical driver names 2024-01-31 16:16:58 -08:00
Documentation x86/efistub: Simplify and clean up handover entry code 2024-03-06 14:45:18 +00:00
drivers x86/efistub: Avoid placing the kernel below LOAD_PHYSICAL_ADDR 2024-03-06 14:45:18 +00:00
fs nfsd: don't destroy global nfs4_file table in per-net shutdown 2024-03-06 14:45:17 +00:00
include efi/libstub: Add memory attribute protocol definitions 2024-03-06 14:45:18 +00:00
init update workarounds for gcc "asm goto" issue 2024-02-23 09:12:28 +01:00
io_uring io_uring/net: fix multishot accept overflow handling 2024-02-23 09:12:43 +01:00
ipc
kernel bpf: Fix racing between bpf_timer_cancel_and_free and bpf_timer_cancel 2024-03-01 13:26:36 +01:00
lib netlink: add nla be16/32 types to minlen array 2024-03-06 14:45:06 +00:00
LICENSES
mm mm: huge_memory: don't force huge page alignment on 32 bit 2024-03-06 14:45:06 +00:00
net mptcp: fix possible deadlock in subflow diag 2024-03-06 14:45:12 +00:00
rust rust: allocator: Prevent mis-aligned allocation 2023-08-11 12:08:18 +02:00
samples work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
scripts bpf, scripts: Correct GPL license name 2024-03-01 13:26:35 +01:00
security landlock: Fix asymmetric private inodes referring 2024-03-06 14:45:10 +00:00
sound ALSA: hda/realtek: fix mute/micmute LED For HP mt440 2024-03-06 14:45:09 +00:00
tools selftests: mptcp: join: add ss mptcp support check 2024-03-06 14:45:12 +00:00
usr
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:42:46 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS trace: Relocate event helper files 2024-03-06 14:45:17 +00:00
Makefile Linux 6.1.80 2024-03-01 13:26:39 +01: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.