Re: [PATCH] KVM: arm64: Use the correct timer for accessing CNT

From: Marc Zyngier
Date: Mon Mar 16 2020 - 07:09:06 EST


Hi Zenghui,

On 2020-03-16 10:49, Zenghui Yu wrote:
Hi,

On 2020/3/16 17:39, KarimAllah Ahmed wrote:
Use the physical timer object when reading the physical timer counter
instead of using the virtual timer object. This is only visible when
reading it from user-space as kvm_arm_timer_get_reg() is only executed on
the get register patch from user-space.

s/patch/path/

I think the physical counter hasn't yet been accessed by the current
userspace, wrong?

I don't think userspace can access it, as the ONE_REG API only exposes the virtual
timer so far, and userspace is much better off just reading the counter directly
(it has access to the virtual counter, and the guarantee that cntvoff is 0 in this
context).

But as we move towards a situation where we can save/restore the physical timer
just like the virtual one, we're going to use this path and hit this bug.



Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: James Morse <james.morse@xxxxxxx>
Cc: Julien Thierry <julien.thierry.kdev@xxxxxxxxx>
Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: KarimAllah Ahmed <karahmed@xxxxxxxxx>

Reviewed-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>

And this might also deserve:

Fixes: 84135d3d18da ("KVM: arm/arm64: consolidate arch timer trap handlers")

Indeed. Thanks,

M.
--
Jazz is not dead. It just smells funny...