Skip to content

KVM: arm64: Prevent kmemleak from accessing HYP data

Marc Zyngier kvm kvmarm linux-arm-kernel stable 1 version Applied

Status from this message: Applied to next, thanks!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest2 patches 6 repliesApplied

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/2arm64: Move .hyp.rodata outside of the _sdata.._edata rangearch/arm64/kernel/vmlinux.lds.S+2 -24 replies
2/2KVM: arm64: Unregister HYP sections from kmemleak in protected modearch/arm64/kvm/arm.c+7 -01 reply

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchQuentin PerretCatalin Marinas
1/2A-b
2/2R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/2] KVM: arm64: Prevent kmemleak from accessing HYP data

This is a rework of the patch previously posted at [1].

The gist of the problem is that kmemleak can legitimately access data that has been removed from the kernel view, for two reasons:

(1) .hyp.rodata is lumped together with the BSS
(2) there is no separation of the HYP BSS from the kernel BSS

(1) can easily be addressed by moving the .hyp.rodata section into the kernel's RO zone, which avoids any kmemleak into that section.
(2) must be addressed by telling kmemleak about the address range.

Tested on a SC2A11 system, in protected and non-protected modes with kmemleak active. Both patches are stable candidates.

[1] https://lore.kernel.org/r/[email protected]

Marc Zyngier (2):
arm64: Move .hyp.rodata outside of the _sdata.._edata range
KVM: arm64: Unregister HYP sections from kmemleak in protected mode

 arch/arm64/kernel/vmlinux.lds.S | 4 ++--
 arch/arm64/kvm/arm.c            | 7 +++++++
 2 files changed, 9 insertions(+), 2 deletions(-)
Signature · 1 line
2.30.2