]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Jul 2013 20:21:40 +0000 (13:21 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Jul 2013 20:21:40 +0000 (13:21 -0700)
Pull KVM fixes from Paolo Bonzini:
 "On the x86 side, there are some optimizations and documentation
  updates.  The big ARM/KVM change for 3.11, support for AArch64, will
  come through Catalin Marinas's tree.  s390 and PPC have misc cleanups
  and bugfixes"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (87 commits)
  KVM: PPC: Ignore PIR writes
  KVM: PPC: Book3S PR: Invalidate SLB entries properly
  KVM: PPC: Book3S PR: Allow guest to use 1TB segments
  KVM: PPC: Book3S PR: Don't keep scanning HPTEG after we find a match
  KVM: PPC: Book3S PR: Fix invalidation of SLB entry 0 on guest entry
  KVM: PPC: Book3S PR: Fix proto-VSID calculations
  KVM: PPC: Guard doorbell exception with CONFIG_PPC_DOORBELL
  KVM: Fix RTC interrupt coalescing tracking
  kvm: Add a tracepoint write_tsc_offset
  KVM: MMU: Inform users of mmio generation wraparound
  KVM: MMU: document fast invalidate all mmio sptes
  KVM: MMU: document fast invalidate all pages
  KVM: MMU: document fast page fault
  KVM: MMU: document mmio page fault
  KVM: MMU: document write_flooding_count
  KVM: MMU: document clear_spte_count
  KVM: MMU: drop kvm_mmu_zap_mmio_sptes
  KVM: MMU: init kvm generation close to mmio wrap-around value
  KVM: MMU: add tracepoint for check_mmio_spte
  KVM: MMU: fast invalidate all mmio sptes
  ...

17 files changed:
1  2 
Documentation/virtual/kvm/api.txt
MAINTAINERS
arch/arm/kvm/arm.c
arch/arm/kvm/interrupts_head.S
arch/arm/kvm/mmu.c
arch/powerpc/kvm/booke.c
arch/s390/include/asm/pgtable.h
arch/s390/kernel/asm-offsets.c
arch/s390/kernel/entry64.S
arch/s390/mm/pgtable.c
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/emulate.c
arch/x86/kvm/lapic.c
arch/x86/kvm/vmx.c
arch/x86/kvm/x86.c
include/linux/kvm_host.h
virt/kvm/arm/arch_timer.c

index 9bfadeb8be31d46407763c5c797d18892fd6d659,6365fef8d6162e032037aa47e6c9623f72c5a7e0..66dd2aa53ba4c762bb4d86c07f4cd32cb8a1fddb
@@@ -2278,10 -2261,10 +2278,10 @@@ return indicates the attribute is imple
  indicate that the attribute can be read or written in the device's
  current state.  "addr" is ignored.
  
- 4.77 KVM_ARM_VCPU_INIT
+ 4.82 KVM_ARM_VCPU_INIT
  
  Capability: basic
 -Architectures: arm
 +Architectures: arm, arm64
  Type: vcpu ioctl
  Parameters: struct struct kvm_vcpu_init (in)
  Returns: 0 on success; -1 on error
@@@ -2300,14 -2283,12 +2300,14 @@@ should be created before this ioctl is 
  Possible features:
        - KVM_ARM_VCPU_POWER_OFF: Starts the CPU in a power-off state.
          Depends on KVM_CAP_ARM_PSCI.
 +      - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
 +        Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only).
  
  
- 4.78 KVM_GET_REG_LIST
+ 4.83 KVM_GET_REG_LIST
  
  Capability: basic
 -Architectures: arm
 +Architectures: arm, arm64
  Type: vcpu ioctl
  Parameters: struct kvm_reg_list (in/out)
  Returns: 0 on success; -1 on error
@@@ -2324,10 -2305,10 +2324,10 @@@ This ioctl returns the guest registers 
  KVM_GET_ONE_REG/KVM_SET_ONE_REG calls.
  
  
- 4.80 KVM_ARM_SET_DEVICE_ADDR
+ 4.84 KVM_ARM_SET_DEVICE_ADDR
  
  Capability: KVM_CAP_ARM_SET_DEVICE_ADDR
 -Architectures: arm
 +Architectures: arm, arm64
  Type: vm ioctl
  Parameters: struct kvm_arm_device_address (in)
  Returns: 0 on success, -1 on error
@@@ -2354,15 -2335,14 +2354,15 @@@ address type id specific to the individ
    bits:  | 63        ...       32 | 31    ...    16 | 15    ...    0 |
    field: |        0x00000000      |     device id   |  addr type id  |
  
 -ARM currently only require this when using the in-kernel GIC support for the
 -hardware VGIC features, using KVM_ARM_DEVICE_VGIC_V2 as the device id.  When
 -setting the base address for the guest's mapping of the VGIC virtual CPU
 -and distributor interface, the ioctl must be called after calling
 -KVM_CREATE_IRQCHIP, but before calling KVM_RUN on any of the VCPUs.  Calling
 -this ioctl twice for any of the base addresses will return -EEXIST.
 +ARM/arm64 currently only require this when using the in-kernel GIC
 +support for the hardware VGIC features, using KVM_ARM_DEVICE_VGIC_V2
 +as the device id.  When setting the base address for the guest's
 +mapping of the VGIC virtual CPU and distributor interface, the ioctl
 +must be called after calling KVM_CREATE_IRQCHIP, but before calling
 +KVM_RUN on any of the VCPUs.  Calling this ioctl twice for any of the
 +base addresses will return -EEXIST.
  
- 4.82 KVM_PPC_RTAS_DEFINE_TOKEN
+ 4.85 KVM_PPC_RTAS_DEFINE_TOKEN
  
  Capability: KVM_CAP_PPC_RTAS
  Architectures: ppc
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9aefa3c64eb2d32ab756512e035762613277caa8,1d0ad7d2d29a433e6a1de4981ca5a2e6279b57a8..0ea4e591fa781e58d89a8e05a195dd70ecba90f7
@@@ -629,11 -628,10 +625,11 @@@ static inline void pgste_set_unlock(pte
  {
  #ifdef CONFIG_PGSTE
        asm(
-               "       nihh    %1,0xff7f\n"    /* clear RCP_PCL_BIT */
+               "       nihh    %1,0xff7f\n"    /* clear PCL bit */
                "       stg     %1,%0\n"
                : "=Q" (ptep[PTRS_PER_PTE])
 -              : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE]) : "cc");
 +              : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE])
 +              : "cc", "memory");
        preempt_enable();
  #endif
  }
@@@ -709,19 -700,17 +705,19 @@@ static inline void pgste_set_key(pte_t 
  {
  #ifdef CONFIG_PGSTE
        unsigned long address;
 -      unsigned long okey, nkey;
 +      unsigned long nkey;
  
 -      if (!pte_present(entry))
 +      if (pte_val(entry) & _PAGE_INVALID)
                return;
 +      VM_BUG_ON(!(pte_val(*ptep) & _PAGE_INVALID));
        address = pte_val(entry) & PAGE_MASK;
 -      okey = nkey = page_get_storage_key(address);
 -      nkey &= ~(_PAGE_ACC_BITS | _PAGE_FP_BIT);
 -      /* Set page access key and fetch protection bit from pgste */
 -      nkey |= (pgste_val(pgste) & (PGSTE_ACC_BITS | PGSTE_FP_BIT)) >> 56;
 -      if (okey != nkey)
 -              page_set_storage_key(address, nkey, 0);
 +      /*
 +       * Set page access key and fetch protection bit from pgste.
 +       * The guest C/R information is still in the PGSTE, set real
 +       * key C/R to 0.
 +       */
-       nkey = (pgste_val(pgste) & (RCP_ACC_BITS | RCP_FP_BIT)) >> 56;
++      nkey = (pgste_val(pgste) & (PGSTE_ACC_BITS | PGSTE_FP_BIT)) >> 56;
 +      page_set_storage_key(address, nkey, 0);
  #endif
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge