Second PPC KVM update for 4.16
Seven fixes that are either trivial or that address bugs that people
are actually hitting.  The main ones are:
- Drop spinlocks before reading guest memory
- Fix a bug causing corruption of VCPU state in PR KVM with preemption
  enabled
- Make HPT resizing work on POWER9
- Add MMIO emulation for vector loads and stores, because guests now
  use these instructions in memcpy and similar routines.
                        r = kvmppc_emulate_mmio_vsx_loadstore(vcpu, run);
                        if (r == RESUME_HOST) {
                                vcpu->mmio_needed = 1;
 -                              return r;
 +                              goto out;
                        }
                }
 -                              return r;
+ #endif
+ #ifdef CONFIG_ALTIVEC
+               if (vcpu->arch.mmio_vmx_copy_nums > 0)
+                       vcpu->arch.mmio_vmx_copy_nums--;
+ 
+               if (vcpu->arch.mmio_vmx_copy_nums > 0) {
+                       r = kvmppc_emulate_mmio_vmx_loadstore(vcpu, run);
+                       if (r == RESUME_HOST) {
+                               vcpu->mmio_needed = 1;
++                              goto out;
+                       }
+               }
  #endif
        } else if (vcpu->arch.osi_needed) {
                u64 *gprs = run->osi.gprs;