Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[cascardo/linux.git] / arch / s390 / kvm / kvm-s390.c
index 63ac7c1..3f3ae48 100644 (file)
@@ -30,7 +30,7 @@
 #include <linux/bitmap.h>
 #include <asm/asm-offsets.h>
 #include <asm/lowcore.h>
-#include <asm/etr.h>
+#include <asm/stp.h>
 #include <asm/pgtable.h>
 #include <asm/gmap.h>
 #include <asm/nmi.h>
@@ -38,7 +38,7 @@
 #include <asm/isc.h>
 #include <asm/sclp.h>
 #include <asm/cpacf.h>
-#include <asm/etr.h>
+#include <asm/timex.h>
 #include "kvm-s390.h"
 #include "gaccess.h"
 
@@ -65,6 +65,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
        { "exit_external_request", VCPU_STAT(exit_external_request) },
        { "exit_external_interrupt", VCPU_STAT(exit_external_interrupt) },
        { "exit_instruction", VCPU_STAT(exit_instruction) },
+       { "exit_pei", VCPU_STAT(exit_pei) },
        { "exit_program_interruption", VCPU_STAT(exit_program_interruption) },
        { "exit_instr_and_program_int", VCPU_STAT(exit_instr_and_program) },
        { "exit_operation_exception", VCPU_STAT(exit_operation_exception) },
@@ -242,7 +243,9 @@ static void kvm_s390_cpu_feat_init(void)
        }
 
        if (test_facility(28)) /* TOD-clock steering */
-               etr_ptff(kvm_s390_available_subfunc.ptff, ETR_PTFF_QAF);
+               ptff(kvm_s390_available_subfunc.ptff,
+                    sizeof(kvm_s390_available_subfunc.ptff),
+                    PTFF_QAF);
 
        if (test_facility(17)) { /* MSA */
                __cpacf_query(CPACF_KMAC, kvm_s390_available_subfunc.kmac);
@@ -798,7 +801,7 @@ static int kvm_s390_set_processor(struct kvm *kvm, struct kvm_device_attr *attr)
                kvm->arch.model.cpuid = proc->cpuid;
                lowest_ibc = sclp.ibc >> 16 & 0xfff;
                unblocked_ibc = sclp.ibc & 0xfff;
-               if (lowest_ibc) {
+               if (lowest_ibc && proc->ibc) {
                        if (proc->ibc > unblocked_ibc)
                                kvm->arch.model.ibc = unblocked_ibc;
                        else if (proc->ibc < lowest_ibc)