Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 6 May 2019 23:30:28 +0000 (16:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 6 May 2019 23:30:28 +0000 (16:30 -0700)
Pull x86 platform updates from Ingo Molnar:
 "Smaller update for Hyper-V to support EOI assist, plus LTO fixes"

* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/kvm: Make steal_time visible
  x86/hyperv: Make hv_vcpu_is_preempted() visible
  x86/hyper-v: Implement EOI assist

arch/x86/hyperv/hv_apic.c
arch/x86/hyperv/hv_spinlock.c
arch/x86/kernel/kvm.c

index 8eb6fbe..5c056b8 100644 (file)
@@ -86,6 +86,11 @@ static void hv_apic_write(u32 reg, u32 val)
 
 static void hv_apic_eoi_write(u32 reg, u32 val)
 {
+       struct hv_vp_assist_page *hvp = hv_vp_assist_page[smp_processor_id()];
+
+       if (hvp && (xchg(&hvp->apic_assist, 0) & 0x1))
+               return;
+
        wrmsr(HV_X64_MSR_EOI, val, 0);
 }
 
index a861b04..07f21a0 100644 (file)
@@ -56,7 +56,7 @@ static void hv_qlock_wait(u8 *byte, u8 val)
 /*
  * Hyper-V does not support this so far.
  */
-bool hv_vcpu_is_preempted(int vcpu)
+__visible bool hv_vcpu_is_preempted(int vcpu)
 {
        return false;
 }
index 5c93a65..3f0cc82 100644 (file)
@@ -67,7 +67,7 @@ static int __init parse_no_stealacc(char *arg)
 early_param("no-steal-acc", parse_no_stealacc);
 
 static DEFINE_PER_CPU_DECRYPTED(struct kvm_vcpu_pv_apf_data, apf_reason) __aligned(64);
-static DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64);
+DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visible;
 static int has_steal_clock = 0;
 
 /*