First batch of KVM changes for 4.14

Common:
 - improve heuristic for boosting preempted spinlocks by ignoring VCPUs
   in user mode

ARM:
 - fix for decoding external abort types from guests

 - added support for migrating the active priority of interrupts when
   running a GICv2 guest on a GICv3 host

 - minor cleanup

PPC:
 - expose storage keys to userspace

 - merge powerpc/topic/ppc-kvm branch that contains
   find_linux_pte_or_hugepte and POWER9 thread management cleanup

 - merge kvm-ppc-fixes with a fix that missed 4.13 because of vacations

 - fixes

s390:
 - merge of topic branch tlb-flushing from the s390 tree to get the
   no-dat base features

 - merge of kvm/master to avoid conflicts with additional sthyi fixes

 - wire up the no-dat enhancements in KVM

 - multiple epoch facility (z14 feature)

 - Configuration z/Architecture Mode

 - more sthyi fixes

 - gdb server range checking fix

 - small code cleanups

x86:
 - emulate Hyper-V TSC frequency MSRs

 - add nested INVPCID

 - emulate EPTP switching VMFUNC

 - support Virtual GIF

 - support 5 level page tables

 - speedup nested VM exits by packing byte operations

 - speedup MMIO by using hardware provided physical address

 - a lot of fixes and cleanups, especially nested
Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

This fix was intended for 4.13, but didn't get in because both
maintainers were on vacation.

Paul Mackerras:
 "It adds mutual exclusion between list_add_rcu and list_del_rcu calls
  on the kvm->arch.spapr_tce_tables list.  Without this, userspace could
  potentially trigger corruption of the list and cause a host crash or
  worse."