forked from mirrors/linux
Recently _pgd_alloc() was switched from using __get_free_pages() to
pagetable_alloc_noprof(), which might return a compound page in case
the allocation order is larger than 0.
On x86 this will be the case if CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
is set, even if PTI has been disabled at runtime.
When running as a Xen PV guest (this will always disable PTI), using
a compound page for a PGD will result in VM_BUG_ON_PGFLAGS being
triggered when the Xen code tries to pin the PGD.
Fix the Xen issue together with the not needed 8k allocation for a
PGD with PTI disabled by replacing PGD_ALLOCATION_ORDER with an
inline helper returning the needed order for PGD allocations.
Fixes:
|
||
|---|---|---|
| .. | ||
| efi.c | ||
| efi_32.c | ||
| efi_64.c | ||
| efi_stub_32.S | ||
| efi_stub_64.S | ||
| efi_thunk_64.S | ||
| Makefile | ||
| memmap.c | ||
| quirks.c | ||
| runtime-map.c | ||