diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-06 19:30:28 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-06 19:30:28 -0400 |
| commit | ba3934de557a2074b89d67e29e5ce119f042d057 (patch) | |
| tree | 315878dfa78ee6d147c2160400a31c37c45e9f0e | |
| parent | 0bc40e549aeea2de20fc571749de9bbfc099fb34 (diff) | |
| parent | 14e581c381b942ce5463a7e61326d8ce1c843be7 (diff) | |
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
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
| -rw-r--r-- | arch/x86/hyperv/hv_apic.c | 5 | ||||
| -rw-r--r-- | arch/x86/hyperv/hv_spinlock.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/kvm.c | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 8eb6fbee8e13..5c056b8aebef 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c | |||
| @@ -86,6 +86,11 @@ static void hv_apic_write(u32 reg, u32 val) | |||
| 86 | 86 | ||
| 87 | static void hv_apic_eoi_write(u32 reg, u32 val) | 87 | static void hv_apic_eoi_write(u32 reg, u32 val) |
| 88 | { | 88 | { |
| 89 | struct hv_vp_assist_page *hvp = hv_vp_assist_page[smp_processor_id()]; | ||
| 90 | |||
| 91 | if (hvp && (xchg(&hvp->apic_assist, 0) & 0x1)) | ||
| 92 | return; | ||
| 93 | |||
| 89 | wrmsr(HV_X64_MSR_EOI, val, 0); | 94 | wrmsr(HV_X64_MSR_EOI, val, 0); |
| 90 | } | 95 | } |
| 91 | 96 | ||
diff --git a/arch/x86/hyperv/hv_spinlock.c b/arch/x86/hyperv/hv_spinlock.c index a861b0456b1a..07f21a06392f 100644 --- a/arch/x86/hyperv/hv_spinlock.c +++ b/arch/x86/hyperv/hv_spinlock.c | |||
| @@ -56,7 +56,7 @@ static void hv_qlock_wait(u8 *byte, u8 val) | |||
| 56 | /* | 56 | /* |
| 57 | * Hyper-V does not support this so far. | 57 | * Hyper-V does not support this so far. |
| 58 | */ | 58 | */ |
| 59 | bool hv_vcpu_is_preempted(int vcpu) | 59 | __visible bool hv_vcpu_is_preempted(int vcpu) |
| 60 | { | 60 | { |
| 61 | return false; | 61 | return false; |
| 62 | } | 62 | } |
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 5c93a65ee1e5..3f0cc828cc36 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c | |||
| @@ -67,7 +67,7 @@ static int __init parse_no_stealacc(char *arg) | |||
| 67 | early_param("no-steal-acc", parse_no_stealacc); | 67 | early_param("no-steal-acc", parse_no_stealacc); |
| 68 | 68 | ||
| 69 | static DEFINE_PER_CPU_DECRYPTED(struct kvm_vcpu_pv_apf_data, apf_reason) __aligned(64); | 69 | static DEFINE_PER_CPU_DECRYPTED(struct kvm_vcpu_pv_apf_data, apf_reason) __aligned(64); |
| 70 | static DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64); | 70 | DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visible; |
| 71 | static int has_steal_clock = 0; | 71 | static int has_steal_clock = 0; |
| 72 | 72 | ||
| 73 | /* | 73 | /* |
