ANDROID: 16K: Make the x86 vdso layout 16kB compatible

The vDSO is layed-out at at build time.

Use the max page size to layout the vdso pages, since
__PAGE_SIZE is only known at runtime.

Bug: 383389337
Bug: 356729201
Change-Id: I3fcd2dd9a4253e6c2f8d4cc2c3e3885c12a9fc0f
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
This commit is contained in:
Kalesh Singh
2024-07-31 20:49:32 -07:00
committed by Carlos Llamas
parent c64a15a595
commit 37ebd01b5a

View File

@@ -1,6 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0 */
#include <asm/vdso.h>
#include <linux/page_size_compat.h>
/*
* Linker script for vDSO. This is an ELF shared object prelinked to
* its virtual address, and with only one read-only segment.
@@ -16,7 +18,7 @@ SECTIONS
* segment.
*/
vvar_start = . - 4 * PAGE_SIZE;
vvar_start = . - 4 * __MAX_PAGE_SIZE;
vvar_page = vvar_start;
/* Place all vvars at the offsets in asm/vvar.h. */
@@ -24,9 +26,9 @@ SECTIONS
#include <asm/vvar.h>
#undef EMIT_VVAR
pvclock_page = vvar_start + PAGE_SIZE;
hvclock_page = vvar_start + 2 * PAGE_SIZE;
timens_page = vvar_start + 3 * PAGE_SIZE;
pvclock_page = vvar_start + __MAX_PAGE_SIZE;
hvclock_page = vvar_start + 2 * __MAX_PAGE_SIZE;
timens_page = vvar_start + 3 * __MAX_PAGE_SIZE;
#undef _ASM_X86_VVAR_H
/* Place all vvars in timens too at the offsets in asm/vvar.h. */