Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 May 2012 23:17:30 +0000 (16:17 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 May 2012 23:17:30 +0000 (16:17 -0700)
Pull KVM changes from Avi Kivity:
 "Changes include additional instruction emulation, page-crossing MMIO,
  faster dirty logging, preventing the watchdog from killing a stopped
  guest, module autoload, a new MSI ABI, and some minor optimizations
  and fixes.  Outside x86 we have a small s390 and a very large ppc
  update.

  Regarding the new (for kvm) rebaseless workflow, some of the patches
  that were merged before we switch trees had to be rebased, while
  others are true pulls.  In either case the signoffs should be correct
  now."

Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
arch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.

I suspect the kvm_para.h resolution ends up doing the "do I have cpuid"
check effectively twice (it was done differently in two different
commits), but better safe than sorry ;)

* 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)
  KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block
  KVM: s390: onereg for timer related registers
  KVM: s390: epoch difference and TOD programmable field
  KVM: s390: KVM_GET/SET_ONEREG for s390
  KVM: s390: add capability indicating COW support
  KVM: Fix mmu_reload() clash with nested vmx event injection
  KVM: MMU: Don't use RCU for lockless shadow walking
  KVM: VMX: Optimize %ds, %es reload
  KVM: VMX: Fix %ds/%es clobber
  KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()
  KVM: VMX: unlike vmcs on fail path
  KVM: PPC: Emulator: clean up SPR reads and writes
  KVM: PPC: Emulator: clean up instruction parsing
  kvm/powerpc: Add new ioctl to retreive server MMU infos
  kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM
  KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler
  KVM: PPC: Book3S: Enable IRQs during exit handling
  KVM: PPC: Fix PR KVM on POWER7 bare metal
  KVM: PPC: Fix stbux emulation
  KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields
  ...

17 files changed:
1  2 
Documentation/feature-removal-schedule.txt
arch/powerpc/include/asm/hvcall.h
arch/powerpc/include/asm/kvm_book3s.h
arch/powerpc/include/asm/processor.h
arch/powerpc/include/asm/reg_booke.h
arch/powerpc/include/asm/switch_to.h
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/head_44x.S
arch/powerpc/kernel/head_fsl_booke.S
arch/powerpc/kvm/book3s_64_mmu_hv.c
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_segment.S
arch/x86/include/asm/kvm_host.h
arch/x86/include/asm/kvm_para.h
arch/x86/kvm/x86.c
drivers/s390/char/sclp_cmd.c

index 50d82ae09e2a685bf54146123c1d02dbfc3ed886,223fe9fcfd94eceb57c398b70642a4f6ab521ff7..4ba1eb7590a70d489a131fc879bac5c7c5f6d5da
@@@ -561,30 -542,8 +561,37 @@@ Who:     Sasikantha Babu <sasikanth.v19@gma
  
  ----------------------------
  
 +What: remove bogus DV presets V4L2_DV_1080I29_97, V4L2_DV_1080I30 and
 +      V4L2_DV_1080I25
 +When: 3.6
 +Why:  These HDTV formats do not exist and were added by a confused mind
 +      (that was me, to be precise...)
 +Who:  Hans Verkuil <hans.verkuil@cisco.com>
 +
 +----------------------------
 +
 +What: V4L2_CID_HCENTER, V4L2_CID_VCENTER V4L2 controls
 +When: 3.7
 +Why:  The V4L2_CID_VCENTER, V4L2_CID_HCENTER controls have been deprecated
 +      for about 4 years and they are not used by any mainline driver.
 +      There are newer controls (V4L2_CID_PAN*, V4L2_CID_TILT*) that provide
 +      similar functionality.
 +Who:  Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
 +
 +----------------------------
 +
 +What: cgroup option updates via remount
 +When: March 2013
 +Why:  Remount currently allows changing bound subsystems and
 +      release_agent.  Rebinding is hardly useful as it only works
 +      when the hierarchy is empty and release_agent itself should be
 +      replaced with conventional fsnotify.
 +
 +----------------------------
++
+ What: KVM debugfs statistics
+ When: 2013
+ Why:  KVM tracepoints provide mostly equivalent information in a much more
+         flexible fashion.
++----------------------------
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index de80e0f9a2bded4d802bdaf9c4f71a2e29add915,89c6d6f36785412a77c1b4ca50f606bfbacb5716..1f4434a3860885bc9fa33c821359731be7b7398d
@@@ -871,9 -906,40 +906,32 @@@ _GLOBAL(__setup_e500mc_ivors
        mtspr   SPRN_IVOR36,r3
        li      r3,CriticalDoorbell@l
        mtspr   SPRN_IVOR37,r3
+       /*
+        * We only want to touch IVOR38-41 if we're running on hardware
+        * that supports category E.HV.  The architectural way to determine
+        * this is MMUCFG[LPIDSIZE].
+        */
+       mfspr   r3, SPRN_MMUCFG
+       andis.  r3, r3, MMUCFG_LPIDSIZE@h
+       beq     no_hv
+       li      r3,GuestDoorbell@l
+       mtspr   SPRN_IVOR38,r3
+       li      r3,CriticalGuestDoorbell@l
+       mtspr   SPRN_IVOR39,r3
+       li      r3,Hypercall@l
+       mtspr   SPRN_IVOR40,r3
+       li      r3,Ehvpriv@l
+       mtspr   SPRN_IVOR41,r3
+ skip_hv_ivors:
        sync
        blr
+ no_hv:
+       lwz     r3, CPU_SPEC_FEATURES(r5)
+       rlwinm  r3, r3, 0, ~CPU_FTR_EMB_HV
+       stw     r3, CPU_SPEC_FEATURES(r5)
+       b       skip_hv_ivors
  
 -/*
 - * extern void giveup_altivec(struct task_struct *prev)
 - *
 - * The e500 core does not have an AltiVec unit.
 - */
 -_GLOBAL(giveup_altivec)
 -      blr
 -
  #ifdef CONFIG_SPE
  /*
   * extern void giveup_spe(struct task_struct *prev)
Simple merge
Simple merge
Simple merge
Simple merge
index 183922e13de1aa83ead2959144378e96934d4608,a7a7a94b94ce9e69e135b15b8ad5d324178bfb40..63ab1661d00eb0401eba1a379eb49409933332fa
@@@ -170,17 -178,16 +178,19 @@@ static inline int kvm_para_available(vo
        unsigned int eax, ebx, ecx, edx;
        char signature[13];
  
-       cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx);
-       memcpy(signature + 0, &ebx, 4);
-       memcpy(signature + 4, &ecx, 4);
-       memcpy(signature + 8, &edx, 4);
-       signature[12] = 0;
 +      if (boot_cpu_data.cpuid_level < 0)
 +              return 0;       /* So we don't blow up on old processors */
 +
+       if (cpu_has_hypervisor) {
+               cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx);
+               memcpy(signature + 0, &ebx, 4);
+               memcpy(signature + 4, &ecx, 4);
+               memcpy(signature + 8, &edx, 4);
+               signature[12] = 0;
  
-       if (strcmp(signature, "KVMKVMKVM") == 0)
-               return 1;
+               if (strcmp(signature, "KVMKVMKVM") == 0)
+                       return 1;
+       }
  
        return 0;
  }
Simple merge
Simple merge