* Clean up SVM's enter/exit assembly code so that it can be compiled
  without OBJECT_FILES_NON_STANDARD.  This fixes a warning
  "Unpatched return thunk in use. This should not happen!" when running
  KVM selftests.

* Fix a mostly benign bug in the gfn_to_pfn_cache infrastructure where KVM
  would allow userspace to refresh the cache with a bogus GPA.  The bug has
  existed for quite some time, but was exposed by a new sanity check added in
  6.9 (to ensure a cache is either GPA-based or HVA-based).

* Drop an unused param from gfn_to_pfn_cache_invalidate_start() that got left
  behind during a 6.9 cleanup.

* Fix a math goof in x86's hugepage logic for KVM_SET_MEMORY_ATTRIBUTES that
  results in an array overflow (detected by KASAN).

* Fix a bug where KVM incorrectly clears root_role.direct when userspace sets
  guest CPUID.

* Fix a dirty logging bug in the where KVM fails to write-protect SPTEs used
  by a nested guest, if KVM is using Page-Modification Logging and the nested
  hypervisor is NOT using EPT.

x86 PMU:

* Drop support for virtualizing adaptive PEBS, as KVM's implementation is
  architecturally broken without an obvious/easy path forward, and because
  exposing adaptive PEBS can leak host LBRs to the guest, i.e. can leak
  host kernel addresses to the guest.

* Set the enable bits for general purpose counters in PERF_GLOBAL_CTRL at
  RESET time, as done by both Intel and AMD processors.

* Disable LBR virtualization on CPUs that don't support LBR callstacks, as
  KVM unconditionally uses PERF_SAMPLE_BRANCH_CALL_STACK when creating the
  perf event, and would fail on such CPUs.

Tests:

* Fix a flaw in the max_guest_memory selftest that results in it exhausting
  the supply of ucall structures when run with more than 256 vCPUs.

* Mark KVM_MEM_READONLY as supported for RISC-V in set_memory_region_test.
Merge branch 'svm' of https://github.com/kvm-x86/linux into HEAD

Clean up SVM's enter/exit assembly code so that it can be compiled
without OBJECT_FILES_NON_STANDARD.  The "standard" __svm_vcpu_run() can't
be made 100% bulletproof, as RBP isn't restored on #VMEXIT, but that's
also the case for __vmx_vcpu_run(), and getting "close enough" is better
than not even trying.

As for SEV-ES, after yet another refresher on swap types, I realized
KVM can simply let the hardware restore registers after #VMEXIT, all
that's missing is storing the current values to the host save area
(they are swap type B).  This should provide 100% accuracy when using
stack frames for unwinding, and requires less assembly.

In between, build the SEV-ES code iff CONFIG_KVM_AMD_SEV=y, and yank out
"support" for 32-bit kernels in __svm_sev_es_vcpu_run, which was
unnecessarily polluting the code for a configuration that is disabled
at build time.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>