2013/1/8 Christian Borntraeger <[email protected]>:
> commit b080935c8638e08134629d0a9ebdf35669bec14d
>     kvm: Directly account vtime to system on guest switch
>
> also removed the irq_disable/enable around kvm guest switch, which
> is correct in itself. Unfortunately, there is a BUG ON that (correctly)
> checks for preemptible to cover the call to rcu later on.
> (Introduced with commit 8fa2206821953a50a3a02ea33fcfb3ced2fd9997
>     KVM: make guest mode entry to be rcu quiescent state)
>
> This check might trigger depending on the kernel config.
> Lets make sure that no preemption happens during kvm_guest_enter.
> We can enable preemption again after the call to
> rcu_virt_note_context_switch returns.
>
> Please note that we continue to run s390 guests with interrupts
> enabled.
>
> CC: Frederic Weisbecker <[email protected]>
> CC: Gleb Natapov <[email protected]>
> Signed-off-by: Christian Borntraeger <[email protected]>
> ---
>  arch/s390/kvm/kvm-s390.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index c9011bf..f090e81 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -613,7 +613,9 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
>                 kvm_s390_deliver_pending_interrupts(vcpu);
>
>         vcpu->arch.sie_block->icptcode = 0;
> +       preempt_disable();
>         kvm_guest_enter();
> +       preempt_enable();

Sorry for the issue.

The fix looks good to me, thanks!

Acked-by: Frederic Weisbecker <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to