Commit 11620ab9 authored by Lokesh Vutla's avatar Lokesh Vutla Committed by Fuad Tabba
Browse files

FROMGIT: KVM: arm64: Flush hyp bss section after initialization of variables in bss

To determine CPU features during initialization, the nVHE hypervisor
utilizes sanitized values of the host's CPU features registers. These
values, stored in u64 idaa64*_el1_sys_val variables are updated by the
kvm_hyp_init_symbols() function at EL1. To ensure EL2 visibility with
the MMU off, the data cache needs to be flushed after these updates.
However, individually flushing each variable using
kvm_flush_dcache_to_poc() is inefficient.

These cpu feature variables would be part of the bss section of
the hypervisor. Hence, flush the entire bss section of hypervisor
once the initialization is complete.

Fixes: 6c30bfb1 ("KVM: arm64: Add handlers for protected VM System Registers")

Bug: b/386889513
Bug: 357781595
Change-Id: Ib988dbc23ea401e0af1cd6e5445151af868c844c
Link: https://lore.kernel.org/all/20250121044016.2219256-1-lokeshvutla@google.com/
(cherry picked from commit 9bcbb610
 https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git/

 fixes)
Suggested-by: default avatarFuad Tabba <tabba@google.com>
Signed-off-by: default avatarLokesh Vutla <lokeshvutla@google.com>
Signed-off-by: default avatarFuad Tabba <tabba@google.com>
parent 2f2e115e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment