s390/kvm: Fix BUG in include/linux/kvm_host.h:745
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 8 Jan 2013 15:23:10 +0000 (16:23 +0100)
committerMarcelo Tosatti <mtosatti@redhat.com>
Thu, 10 Jan 2013 19:53:40 +0000 (17:53 -0200)
commit83987ace22f541964bd0dbf83a3f6b0014ba3e1e
tree993883209b2b0a03e64cfe3282c29b1dbe7170be
parentecf02a607bd801e742d7bb35c6e40f7ca15edf03
s390/kvm: Fix BUG in include/linux/kvm_host.h:745

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.

Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
CC: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/s390/kvm/kvm-s390.c