mirror of
https://github.com/systemd/systemd.git
synced 2024-11-23 02:03:37 +08:00
boot: explain the 4G quirks we apply to initrd memory allocations
Given how long it took to come to a conclusion of the discussions around
https://github.com/systemd/systemd/issues/35026, let's add a comment
that makes this easier to grok for the next time this comes up.
Follow-up for: 6e207b370e
This commit is contained in:
parent
dd54e63429
commit
9386bcc2da
@ -100,6 +100,13 @@ static inline Pages xmalloc_pages(
|
||||
}
|
||||
|
||||
static inline Pages xmalloc_initrd_pages(size_t n_pages) {
|
||||
/* The original native x86 boot protocol of the Linux kernel was not 64bit safe, hence we allocate
|
||||
* memory for the initrds below the 4G boundary on x86, since we don't know early enough which
|
||||
* protocol we'll use to ultimately boot the kernel. This restriction is somewhat obsolete, since
|
||||
* these days we generally prefer the kernel's newer EFI entrypoint instead, which has no such
|
||||
* limitations. On other architectures we do not bother with any restriction on this, in particular
|
||||
* as some of them don't even have RAM mapped to such low addresses. */
|
||||
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
return xmalloc_pages(
|
||||
AllocateMaxAddress,
|
||||
|
Loading…
Reference in New Issue
Block a user