Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM fixes from Radim Krčmář:
"ARM:
- avoid livelock when walking guest page tables
- fix HYP mode static keys without CC_HAVE_ASM_GOTO

MIPS:
- fix a build error without TRACEPOINTS_ENABLED

s390:
- reject a malformed userspace configuration

x86:
- suppress a warning without CONFIG_CPU_FREQ
- initialize whole irq_eoi array"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
arm/arm64: KVM: Map the BSS at HYP
arm64: KVM: Take S1 walks into account when determining S2 write faults
KVM: s390: reject invalid modes for runtime instrumentation
kvm: x86: memset whole irq_eoi
kvm/x86: Fix unused variable warning in kvm_timer_init()
KVM: MIPS: Add missing uaccess.h include

+24 -10
+7
arch/arm/kvm/arm.c
··· 1312 1312 goto out_err; 1313 1313 } 1314 1314 1315 + err = create_hyp_mappings(kvm_ksym_ref(__bss_start), 1316 + kvm_ksym_ref(__bss_stop), PAGE_HYP_RO); 1317 + if (err) { 1318 + kvm_err("Cannot map bss section\n"); 1319 + goto out_err; 1320 + } 1321 + 1315 1322 /* 1316 1323 * Map the Hyp stack pages 1317 1324 */
+6 -5
arch/arm64/include/asm/kvm_emulate.h
··· 178 178 return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_ISV); 179 179 } 180 180 181 - static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu) 182 - { 183 - return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR); 184 - } 185 - 186 181 static inline bool kvm_vcpu_dabt_issext(const struct kvm_vcpu *vcpu) 187 182 { 188 183 return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SSE); ··· 196 201 static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu) 197 202 { 198 203 return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_S1PTW); 204 + } 205 + 206 + static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu) 207 + { 208 + return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR) || 209 + kvm_vcpu_dabt_iss1tw(vcpu); /* AF/DBM update */ 199 210 } 200 211 201 212 static inline bool kvm_vcpu_dabt_is_cm(const struct kvm_vcpu *vcpu)
+1
arch/mips/kvm/mips.c
··· 14 14 #include <linux/err.h> 15 15 #include <linux/kdebug.h> 16 16 #include <linux/module.h> 17 + #include <linux/uaccess.h> 17 18 #include <linux/vmalloc.h> 18 19 #include <linux/fs.h> 19 20 #include <linux/bootmem.h>
+7 -2
arch/s390/kvm/intercept.c
··· 119 119 120 120 vcpu->stat.exit_validity++; 121 121 trace_kvm_s390_intercept_validity(vcpu, viwhy); 122 - WARN_ONCE(true, "kvm: unhandled validity intercept 0x%x\n", viwhy); 123 - return -EOPNOTSUPP; 122 + KVM_EVENT(3, "validity intercept 0x%x for pid %u (kvm 0x%pK)", viwhy, 123 + current->pid, vcpu->kvm); 124 + 125 + /* do not warn on invalid runtime instrumentation mode */ 126 + WARN_ONCE(viwhy != 0x44, "kvm: unhandled validity intercept 0x%x\n", 127 + viwhy); 128 + return -EINVAL; 124 129 } 125 130 126 131 static int handle_instruction(struct kvm_vcpu *vcpu)
+1 -1
arch/x86/kvm/ioapic.c
··· 594 594 ioapic->irr = 0; 595 595 ioapic->irr_delivered = 0; 596 596 ioapic->id = 0; 597 - memset(ioapic->irq_eoi, 0x00, IOAPIC_NUM_PINS); 597 + memset(ioapic->irq_eoi, 0x00, sizeof(ioapic->irq_eoi)); 598 598 rtc_irq_eoi_tracking_reset(ioapic); 599 599 } 600 600
+2 -2
arch/x86/kvm/x86.c
··· 5733 5733 5734 5734 static void kvm_timer_init(void) 5735 5735 { 5736 - int cpu; 5737 - 5738 5736 max_tsc_khz = tsc_khz; 5739 5737 5740 5738 if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { 5741 5739 #ifdef CONFIG_CPU_FREQ 5742 5740 struct cpufreq_policy policy; 5741 + int cpu; 5742 + 5743 5743 memset(&policy, 0, sizeof(policy)); 5744 5744 cpu = get_cpu(); 5745 5745 cpufreq_get_policy(&policy, cpu);