diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-12-26 11:46:28 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-12-26 11:46:28 -0800 | 
| commit | 42b00f122cfbfed79fc29b0b3610f3abbb1e3864 (patch) | |
| tree | c110a18c03e9ada45b6f3593843f0a06b36773dc /arch/s390 | |
| parent | 460023a5d1d2aa0f733b6708b2fae5ea9f9dfec0 (diff) | |
| parent | a0aea130afebcd091d5396d13f25b9da24c9144a (diff) | |
| download | linux-42b00f122cfbfed79fc29b0b3610f3abbb1e3864.tar.bz2 | |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Paolo Bonzini:
 "ARM:
   - selftests improvements
   - large PUD support for HugeTLB
   - single-stepping fixes
   - improved tracing
   - various timer and vGIC fixes
  x86:
   - Processor Tracing virtualization
   - STIBP support
   - some correctness fixes
   - refactorings and splitting of vmx.c
   - use the Hyper-V range TLB flush hypercall
   - reduce order of vcpu struct
   - WBNOINVD support
   - do not use -ftrace for __noclone functions
   - nested guest support for PAUSE filtering on AMD
   - more Hyper-V enlightenments (direct mode for synthetic timers)
  PPC:
   -  nested VFIO
  s390:
   - bugfixes only this time"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (171 commits)
  KVM: x86: Add CPUID support for new instruction WBNOINVD
  kvm: selftests: ucall: fix exit mmio address guessing
  Revert "compiler-gcc: disable -ftracer for __noclone functions"
  KVM: VMX: Move VM-Enter + VM-Exit handling to non-inline sub-routines
  KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm blobs
  KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
  MAINTAINERS: Add arch/x86/kvm sub-directories to existing KVM/x86 entry
  KVM/x86: Use SVM assembly instruction mnemonics instead of .byte streams
  KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range()
  KVM/MMU: Flush tlb directly in kvm_set_pte_rmapp()
  KVM/MMU: Move tlb flush in kvm_set_pte_rmapp() to kvm_mmu_notifier_change_pte()
  KVM: Make kvm_set_spte_hva() return int
  KVM: Replace old tlb flush function with new one to flush a specified range.
  KVM/MMU: Add tlb flush with range helper function
  KVM/VMX: Add hv tlb range flush support
  x86/hyper-v: Add HvFlushGuestAddressList hypercall support
  KVM: Add tlb_remote_flush_with_range callback in kvm_x86_ops
  KVM: x86: Disable Intel PT when VMXON in L1 guest
  KVM: x86: Set intercept for Intel PT MSRs read/write
  KVM: x86: Implement Intel PT MSRs read/write emulation
  ...
Diffstat (limited to 'arch/s390')
| -rw-r--r-- | arch/s390/kvm/kvm-s390.c | 35 | 
1 files changed, 18 insertions, 17 deletions
| diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index fe24150ff666..7f4bc58a53b9 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -11,6 +11,9 @@   *               Jason J. Herne <jjherne@us.ibm.com>   */ +#define KMSG_COMPONENT "kvm-s390" +#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt +  #include <linux/compiler.h>  #include <linux/err.h>  #include <linux/fs.h> @@ -44,10 +47,6 @@  #include "kvm-s390.h"  #include "gaccess.h" -#define KMSG_COMPONENT "kvm-s390" -#undef pr_fmt -#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt -  #define CREATE_TRACE_POINTS  #include "trace.h"  #include "trace-s390.h" @@ -417,19 +416,30 @@ static void kvm_s390_cpu_feat_init(void)  int kvm_arch_init(void *opaque)  { +	int rc; +  	kvm_s390_dbf = debug_register("kvm-trace", 32, 1, 7 * sizeof(long));  	if (!kvm_s390_dbf)  		return -ENOMEM;  	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view)) { -		debug_unregister(kvm_s390_dbf); -		return -ENOMEM; +		rc = -ENOMEM; +		goto out_debug_unreg;  	}  	kvm_s390_cpu_feat_init();  	/* Register floating interrupt controller interface. */ -	return kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC); +	rc = kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC); +	if (rc) { +		pr_err("Failed to register FLIC rc=%d\n", rc); +		goto out_debug_unreg; +	} +	return 0; + +out_debug_unreg: +	debug_unregister(kvm_s390_dbf); +	return rc;  }  void kvm_arch_exit(void) @@ -464,7 +474,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)  	case KVM_CAP_S390_CSS_SUPPORT:  	case KVM_CAP_IOEVENTFD:  	case KVM_CAP_DEVICE_CTRL: -	case KVM_CAP_ENABLE_CAP_VM:  	case KVM_CAP_S390_IRQCHIP:  	case KVM_CAP_VM_ATTRIBUTES:  	case KVM_CAP_MP_STATE: @@ -607,7 +616,7 @@ static void icpt_operexc_on_all_vcpus(struct kvm *kvm)  	}  } -static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap) +int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)  {  	int r; @@ -1933,14 +1942,6 @@ long kvm_arch_vm_ioctl(struct file *filp,  		r = kvm_s390_inject_vm(kvm, &s390int);  		break;  	} -	case KVM_ENABLE_CAP: { -		struct kvm_enable_cap cap; -		r = -EFAULT; -		if (copy_from_user(&cap, argp, sizeof(cap))) -			break; -		r = kvm_vm_ioctl_enable_cap(kvm, &cap); -		break; -	}  	case KVM_CREATE_IRQCHIP: {  		struct kvm_irq_routing_entry routing; |