On 30 August 2015 at 15:54, Christoffer Dall <christoffer.dall@xxxxxxxxxx> wrote: > Provide a better quality of implementation and be architecture compliant > on ARMv7 for the architected timer by resetting the CNTV_CTL to 0 on > reset of the timer, and call kvm_timer_update_state(vcpu) at the same > time, ensuring the timer output is not asserted after, for example, a > PSCI system reset. > > This change alone fixes the UEFI reset issue reported by Laszlo back in > February. > Do you have a link to that report? I can't quite remember the details ... > Cc: Laszlo Ersek <lersek@xxxxxxxxxx> > Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > Cc: Drew Jones <drjones@xxxxxxxxxx> > Cc: Wei Huang <wei@xxxxxxxxxx> > Cc: Peter Maydell <peter.maydell@xxxxxxxxxx> > Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx> > --- > virt/kvm/arm/arch_timer.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c > index 747302f..8a0fdfc 100644 > --- a/virt/kvm/arm/arch_timer.c > +++ b/virt/kvm/arm/arch_timer.c > @@ -255,6 +255,15 @@ int kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu, > timer->irq.irq = irq->irq; > > /* > + * The bits in CNTV_CTL are architecturally reset to UNKNOWN for ARMv8 > + * and to 0 for ARMv7. We provide an implementation that always > + * resets the timer to be disabled and unmasked and is compliant with > + * the ARMv7 architecture. > + */ > + timer->cntv_ctl = 0; > + kvm_timer_update_state(vcpu); > + > + /* > * Tell the VGIC that the virtual interrupt is tied to a > * physical interrupt. We do that once per VCPU. > */ > -- > 2.1.2.330.g565301e.dirty > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html