mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
MIPS: VDSO: Only map the data pages when the vDSO is used
A future change will make it possible to disable the time-related vDSO. In that case there is no point in calling into the datastore. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Link: https://patch.msgid.link/20260521-vdso-mips-kconfig-v1-4-2f79dcd6c78f@linutronix.de
This commit is contained in:
parent
60ad2f1158
commit
8ea920c48d
|
|
@ -74,7 +74,6 @@ config MIPS
|
|||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_FUNCTION_TRACER
|
||||
select HAVE_GCC_PLUGINS
|
||||
select HAVE_GENERIC_VDSO
|
||||
select HAVE_IOREMAP_PROT
|
||||
select HAVE_IRQ_EXIT_ON_IRQ_STACK
|
||||
select HAVE_IRQ_TIME_ACCOUNTING
|
||||
|
|
@ -3171,6 +3170,7 @@ config MIPS_EXTERNAL_TIMER
|
|||
config MIPS_GENERIC_GETTIMEOFDAY
|
||||
def_bool y
|
||||
select GENERIC_GETTIMEOFDAY
|
||||
select HAVE_GENERIC_VDSO
|
||||
|
||||
menu "CPU Power Management"
|
||||
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
|||
* This ensures that when the kernel updates the VDSO data userland
|
||||
* will observe it without requiring cache invalidations.
|
||||
*/
|
||||
if (cpu_has_dc_aliases) {
|
||||
if (cpu_has_dc_aliases && IS_ENABLED(CONFIG_HAVE_GENERIC_VDSO)) {
|
||||
base = __ALIGN_MASK(base, shm_align_mask);
|
||||
base += ((unsigned long)vdso_k_time_data - gic_size) & shm_align_mask;
|
||||
}
|
||||
|
|
@ -137,10 +137,12 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
|||
data_addr = base + gic_size;
|
||||
vdso_addr = data_addr + VDSO_NR_PAGES * PAGE_SIZE;
|
||||
|
||||
vma = vdso_install_vvar_mapping(mm, data_addr);
|
||||
if (IS_ERR(vma)) {
|
||||
ret = PTR_ERR(vma);
|
||||
goto out;
|
||||
if (IS_ENABLED(CONFIG_HAVE_GENERIC_VDSO)) {
|
||||
vma = vdso_install_vvar_mapping(mm, data_addr);
|
||||
if (IS_ERR(vma)) {
|
||||
ret = PTR_ERR(vma);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/* Map GIC user page. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user