summaryrefslogtreecommitdiff
path: root/arch/arm64/kvm/handle_exit.c
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2020-07-23 11:17:14 +0100
committerMarc Zyngier <maz@kernel.org>2020-07-28 09:03:57 +0100
commitb757b47a2fcba584d4a32fd7ee68faca510ab96f (patch)
treeec558f6379e7781e63977615616bb5b6a059532c /arch/arm64/kvm/handle_exit.c
parentbf4086b1a1efa3d3a2c17582e00bbd2176dfe177 (diff)
KVM: arm64: Don't inherit exec permission across page-table levels
If a stage-2 page-table contains an executable, read-only mapping at the pte level (e.g. due to dirty logging being enabled), a subsequent write fault to the same page which tries to install a larger block mapping (e.g. due to dirty logging having been disabled) will erroneously inherit the exec permission and consequently skip I-cache invalidation for the rest of the block. Ensure that exec permission is only inherited by write faults when the new mapping is of the same size as the existing one. A subsequent instruction abort will result in I-cache invalidation for the entire block mapping. Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Tested-by: Quentin Perret <qperret@google.com> Reviewed-by: Quentin Perret <qperret@google.com> Cc: Marc Zyngier <maz@kernel.org> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20200723101714.15873-1-will@kernel.org
Diffstat (limited to 'arch/arm64/kvm/handle_exit.c')
0 files changed, 0 insertions, 0 deletions