FROMGIT: KVM: arm64: Fix __pkvm_init_switch_pgd call ABI
Fix the mismatch between the (incorrect) C signature, C call site, and asm implementation by aligning all three on an API passing the parameters (pgd and SP) separately, instead of as a bundled struct. Remove the now unnecessary memory accesses while the MMU is off from the asm, which simplifies the C caller (as it does not need to convert a VA struct pointer to PA) and makes the code slightly more robust by offsetting the struct fields from C and properly expressing the call to the C compiler (e.g. type checker and kCFI). Bug: 278010198 Bug: 278749606 (cherry picked from commit ea9d7c83 https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git ) Change-Id: Iefee4c3e1ec7821b60feedc78236b28f02d2f3b2 Fixes: f320bc74 ("KVM: arm64: Prepare the creation of s1 mappings at EL2") Signed-off-by:Pierre-Clément Tosi <ptosi@google.com> Acked-by:
Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20240610063244.2828978-3-ptosi@google.com Signed-off-by:
Oliver Upton <oliver.upton@linux.dev>
Loading
Please sign in to comment