lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250528172432.8396-1-pbonzini@redhat.com>
Date: Wed, 28 May 2025 13:24:30 -0400
From: Paolo Bonzini <pbonzini@...hat.com>
To: torvalds@...ux-foundation.org
Cc: linux-kernel@...r.kernel.org,
	kvm@...r.kernel.org
Subject: [GIT PULL] First batch of KVM changes for Linux 6.16 merge window

Linus,

The following changes since commit a5806cd506af5a7c19bcd596e4708b5c464bfd21:

  Linux 6.15-rc7 (2025-05-18 13:57:29 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to e9f17038d814c0185e017a3fa62305a12d52f45c:

  x86/tdx: mark tdh_vp_enter() as __flatten (2025-05-26 16:45:07 -0400)

As far as x86 goes this pull request "only" includes TDX host support.
Quotes are appropriate because (at 6k lines and 100+ commits) it is
much bigger than the rest, which will come later this week and consists
mostly of bugfixes and selftests.  s390 changes will also come in the
second batch.

All the changes in arch/x86/virt/ have Dave Hansen's ACK.

----------------------------------------------------------------
ARM:

* Add large stage-2 mapping (THP) support for non-protected guests when
  pKVM is enabled, clawing back some performance.

* Enable nested virtualisation support on systems that support it,
  though it is disabled by default.

* Add UBSAN support to the standalone EL2 object used in nVHE/hVHE and
  protected modes.

* Large rework of the way KVM tracks architecture features and links
  them with the effects of control bits. While this has no functional
  impact, it ensures correctness of emulation (the data is automatically
  extracted from the published JSON files), and helps dealing with the
  evolution of the architecture.

* Significant changes to the way pKVM tracks ownership of pages,
  avoiding page table walks by storing the state in the hypervisor's
  vmemmap. This in turn enables the THP support described above.

* New selftest checking the pKVM ownership transition rules

* Fixes for FEAT_MTE_ASYNC being accidentally advertised to guests
  even if the host didn't have it.

* Fixes for the address translation emulation, which happened to be
  rather buggy in some specific contexts.

* Fixes for the PMU emulation in NV contexts, decoupling PMCR_EL0.N
  from the number of counters exposed to a guest and addressing a
  number of issues in the process.

* Add a new selftest for the SVE host state being corrupted by a
  guest.

* Keep HCR_EL2.xMO set at all times for systems running with the
  kernel at EL2, ensuring that the window for interrupts is slightly
  bigger, and avoiding a pretty bad erratum on the AmpereOne HW.

* Add workaround for AmpereOne's erratum AC04_CPU_23, which suffers
  from a pretty bad case of TLB corruption unless accesses to HCR_EL2
  are heavily synchronised.

* Add a per-VM, per-ITS debugfs entry to dump the state of the ITS
  tables in a human-friendly fashion.

* and the usual random cleanups.

LoongArch:

* Don't flush tlb if the host supports hardware page table walks.

* Add KVM selftests support.

RISC-V:

* Add vector registers to get-reg-list selftest

* VCPU reset related improvements

* Remove scounteren initialization from VCPU reset

* Support VCPU reset from userspace using set_mpstate() ioctl

x86:

* Initial support for TDX in KVM.  This finally makes it possible to use the
  TDX module to run confidential guests on Intel processors.  This is quite a
  large series, including support for private page tables (managed by the
  TDX module and mirrored in KVM for efficiency), forwarding some TDVMCALLs
  to userspace, and handling several special VM exits from the TDX module.

  This has been in the works for literally years and it's not really possible
  to describe everything here, so I'll defer to the various merge commits
  up to and including commit 7bcf7246c42a ("Merge branch 'kvm-tdx-finish-initial'
  into HEAD").

----------------------------------------------------------------
Adrian Hunter (2):
      KVM: TDX: Disable support for TSX and WAITPKG
      KVM: TDX: Save and restore IA32_DEBUGCTL

Atish Patra (5):
      KVM: riscv: selftests: Align the trap information wiht pt_regs
      KVM: riscv: selftests: Decode stval to identify exact exception type
      KVM: riscv: selftests: Add vector extension tests
      RISC-V: KVM: Remove experimental tag for RISC-V
      RISC-V: KVM: Remove scounteren initialization

Ben Horgan (3):
      arm64/sysreg: Expose MTE_frac so that it is visible to KVM
      KVM: arm64: Make MTE_frac masking conditional on MTE capability
      KVM: selftests: Confirm exposing MTE_frac does not break migration

Bibo Mao (7):
      LoongArch: KVM: Add ecode parameter for exception handlers
      LoongArch: KVM: Do not flush tlb if HW PTW supported
      KVM: selftests: Add VM_MODE_P47V47_16K VM mode
      KVM: selftests: Add KVM selftests header files for LoongArch
      KVM: selftests: Add core KVM selftests support for LoongArch
      KVM: selftests: Add ucall test support for LoongArch
      KVM: selftests: Add supported test cases for LoongArch

Binbin Wu (8):
      KVM: VMX: Move common fields of struct vcpu_{vmx,tdx} to a struct
      KVM: x86: Have ____kvm_emulate_hypercall() read the GPRs
      KVM: x86: Move pv_unhalted check out of kvm_vcpu_has_events()
      KVM: TDX: Handle TDG.VP.VMCALL<MapGPA>
      KVM: TDX: Handle TDG.VP.VMCALL<ReportFatalError>
      KVM: TDX: Enforce KVM_IRQCHIP_SPLIT for TDX guests
      KVM: VMX: Move emulation_required to struct vcpu_vt
      KVM: TDX: Enable guest access to MTRR MSRs

Chao Gao (1):
      KVM: x86: Allow to update cached values in kvm_user_return_msrs w/o wrmsr

D Scott Phillips (1):
      arm64: errata: Work around AmpereOne's erratum AC04_CPU_23

David Brazdil (1):
      KVM: arm64: Add .hyp.data section

Fuad Tabba (1):
      KVM: arm64: Track SVE state in the hypervisor vcpu structure

Gavin Shan (1):
      KVM: arm64: Drop sort_memblock_regions()

Isaku Yamahata (66):
      x86/virt/tdx: Add tdx_guest_keyid_alloc/free() to alloc and free TDX guest KeyID
      KVM: TDX: Add placeholders for TDX VM/vCPU structures
      KVM: TDX: Define TDX architectural definitions
      KVM: TDX: Add helper functions to print TDX SEAMCALL error
      KVM: TDX: Add place holder for TDX VM specific mem_enc_op ioctl
      KVM: TDX: Get system-wide info about TDX module on initialization
      KVM: TDX: create/destroy VM structure
      KVM: TDX: Support per-VM KVM_CAP_MAX_VCPUS extension check
      KVM: TDX: add ioctl to initialize VM with TDX specific parameters
      KVM: TDX: Make pmu_intel.c ignore guest TD case
      KVM: TDX: Don't offline the last cpu of one package when there's TDX guest
      KVM: TDX: create/free TDX vcpu structure
      x86/virt/tdx: Add SEAMCALL wrapper tdh_mem_sept_add() to add SEPT pages
      KVM: TDX: Do TDX specific vcpu initialization
      x86/virt/tdx: Add SEAMCALL wrappers to add TD private pages
      x86/virt/tdx: Add SEAMCALL wrappers to manage TDX TLB tracking
      x86/virt/tdx: Add SEAMCALL wrappers to remove a TD private page
      x86/virt/tdx: Add SEAMCALL wrappers for TD measurement of initial contents
      KVM: x86/tdp_mmu: Add a helper function to walk down the TDP MMU
      KVM: TDX: Add accessors VMX VMCS helpers
      KVM: TDX: Set gfn_direct_bits to shared bit
      KVM: TDX: Require TDP MMU, mmio caching and EPT A/D bits for TDX
      KVM: x86/mmu: Add setter for shadow_mmio_value
      KVM: TDX: Set per-VM shadow_mmio_value to 0
      KVM: TDX: Handle TLB tracking for TDX
      KVM: TDX: Implement hooks to propagate changes of TDP MMU mirror page table
      KVM: TDX: Implement hook to get max mapping level of private pages
      KVM: TDX: Add an ioctl to create initial guest memory
      KVM: TDX: Finalize VM initialization
      KVM: TDX: Handle vCPU dissociation
      KVM: TDX: Implement TDX vcpu enter/exit path
      KVM: TDX: vcpu_run: save/restore host state(host kernel gs)
      KVM: TDX: restore host xsave state when exit from the guest TD
      KVM: TDX: restore user ret MSRs
      KVM: TDX: Add a place holder to handle TDX VM exit
      KVM: x86: Add a switch_db_regs flag to handle TDX's auto-switched behavior
      KVM: TDX: Add a place holder for handler of TDX hypercalls (TDG.VP.VMCALL)
      KVM: TDX: Disable PI wakeup for IPIv
      KVM: TDX: Handle KVM hypercall with TDG.VP.VMCALL
      KVM: VMX: Move posted interrupt delivery code to common header
      KVM: TDX: Implement non-NMI interrupt injection
      KVM: TDX: Handle TDX PV port I/O hypercall
      KVM: TDX: Wait lapic expire when timer IRQ was injected
      KVM: TDX: Implement methods to inject NMI
      KVM: TDX: Handle SMI request as !CONFIG_KVM_SMM
      KVM: TDX: Always block INIT/SIPI
      KVM: TDX: Force APICv active for TDX guest
      KVM: TDX: Add methods to ignore virtual apic related operation
      KVM: TDX: Handle EPT violation/misconfig exit
      KVM: TDX: Handle EXCEPTION_NMI and EXTERNAL_INTERRUPT
      KVM: TDX: Handle EXIT_REASON_OTHER_SMI
      KVM: TDX: Handle TDX PV CPUID hypercall
      KVM: TDX: Handle TDX PV HLT hypercall
      KVM: x86: Move KVM_MAX_MCE_BANKS to header file
      KVM: TDX: Implement callbacks for MSR operations
      KVM: TDX: Handle TDX PV rdmsr/wrmsr hypercall
      KVM: TDX: Enable guest access to LMCE related MSRs
      KVM: TDX: Handle TDG.VP.VMCALL<GetTdVmCallInfo> hypercall
      KVM: TDX: Add methods to ignore accesses to CPU state
      KVM: TDX: Add method to ignore guest instruction emulation
      KVM: TDX: Add methods to ignore VMX preemption timer
      KVM: TDX: Add methods to ignore accesses to TSC
      KVM: TDX: Ignore setting up mce
      KVM: TDX: Add a method to ignore hypercall patching
      KVM: TDX: Make TDX VM type supported
      Documentation/virt/kvm: Document on Trust Domain Extensions (TDX)

Jing Zhang (1):
      KVM: arm64: vgic-its: Add debugfs interface to expose ITS tables

Kai Huang (6):
      x86/virt/tdx: Read essential global metadata for KVM
      KVM: Export hardware virtualization enabling/disabling functions
      KVM: VMX: Refactor VMX module init/exit functions
      KVM: VMX: Initialize TDX during KVM module load
      KVM: TDX: Get TDX global information
      x86/virt/tdx: Add SEAMCALL wrapper to enter/exit TDX guest

Marc Zyngier (84):
      KVM: arm64: Repaint pmcr_n into nr_pmu_counters
      KVM: arm64: Fix MDCR_EL2.HPMN reset value
      KVM: arm64: Contextualise the handling of PMCR_EL0.P writes
      KVM: arm64: Allow userspace to limit the number of PMU counters for EL2 VMs
      KVM: arm64: Don't let userspace write to PMCR_EL0.N when the vcpu has EL2
      KVM: arm64: Handle out-of-bound write to MDCR_EL2.HPMN
      KVM: arm64: Let kvm_vcpu_read_pmcr() return an EL-dependent value for PMCR_EL0.N
      Merge branch kvm-arm64/nv-pmu-fixes into kvmarm-master/next
      KVM: arm64: Force HCR_EL2.xMO to 1 at all times in VHE mode
      arm64: sysreg: Add ID_AA64ISAR1_EL1.LS64 encoding for FEAT_LS64WB
      arm64: sysreg: Update ID_AA64MMFR4_EL1 description
      arm64: sysreg: Add layout for HCR_EL2
      arm64: sysreg: Replace HFGxTR_EL2 with HFG{R,W}TR_EL2
      arm64: sysreg: Update ID_AA64PFR0_EL1 description
      arm64: sysreg: Update PMSIDR_EL1 description
      arm64: sysreg: Update TRBIDR_EL1 description
      arm64: sysreg: Update CPACR_EL1 description
      arm64: sysreg: Add registers trapped by HFG{R,W}TR2_EL2
      arm64: sysreg: Add registers trapped by HDFG{R,W}TR2_EL2
      arm64: sysreg: Add system instructions trapped by HFGIRT2_EL2
      arm64: Remove duplicated sysreg encodings
      arm64: tools: Resync sysreg.h
      arm64: Add syndrome information for trapped LD64B/ST64B{,V,V0}
      arm64: Add FEAT_FGT2 capability
      KVM: arm64: Tighten handling of unknown FGT groups
      KVM: arm64: Simplify handling of negative FGT bits
      KVM: arm64: Handle trapping of FEAT_LS64* instructions
      KVM: arm64: Restrict ACCDATA_EL1 undef to FEAT_LS64_ACCDATA being disabled
      KVM: arm64: Don't treat HCRX_EL2 as a FGT register
      KVM: arm64: Plug FEAT_GCS handling
      KVM: arm64: Compute FGT masks from KVM's own FGT tables
      KVM: arm64: Add description of FGT bits leading to EC!=0x18
      KVM: arm64: Use computed masks as sanitisers for FGT registers
      KVM: arm64: Propagate FGT masks to the nVHE hypervisor
      KVM: arm64: Use computed FGT masks to setup FGT registers
      KVM: arm64: Remove hand-crafted masks for FGT registers
      KVM: arm64: Use KVM-specific HCRX_EL2 RES0 mask
      KVM: arm64: Handle PSB CSYNC traps
      KVM: arm64: Switch to table-driven FGU configuration
      KVM: arm64: Validate FGT register descriptions against RES0 masks
      KVM: arm64: Fix PAR_EL1.{PTW,S} reporting on AT S1E*
      KVM: arm64: Teach address translation about access faults
      KVM: arm64: Don't feed uninitialised data to HCR_EL2
      arm64: sysreg: Add layout for VNCR_EL2
      KVM: arm64: nv: Allocate VNCR page when required
      KVM: arm64: nv: Extract translation helper from the AT code
      KVM: arm64: nv: Snapshot S1 ASID tagging information during walk
      KVM: arm64: nv: Move TLBI range decoding to a helper
      KVM: arm64: nv: Don't adjust PSTATE.M when L2 is nesting
      KVM: arm64: nv: Add pseudo-TLB backing VNCR_EL2
      KVM: arm64: nv: Add userspace and guest handling of VNCR_EL2
      KVM: arm64: nv: Handle VNCR_EL2-triggered faults
      KVM: arm64: nv: Handle mapping of VNCR_EL2 at EL2
      KVM: arm64: nv: Handle VNCR_EL2 invalidation from MMU notifiers
      KVM: arm64: nv: Program host's VNCR_EL2 to the fixmap address
      KVM: arm64: nv: Add S1 TLB invalidation primitive for VNCR_EL2
      KVM: arm64: nv: Plumb TLBI S1E2 into system instruction dispatch
      KVM: arm64: nv: Remove dead code from ERET handling
      KVM: arm64: Allow userspace to request KVM_ARM_VCPU_EL2*
      KVM: arm64: Document NV caps and vcpu flags
      KVM: arm64: Use FGT feature maps to drive RES0 bits
      KVM: arm64: Allow kvm_has_feat() to take variable arguments
      KVM: arm64: Use HCRX_EL2 feature map to drive fixed-value bits
      KVM: arm64: Use HCR_EL2 feature map to drive fixed-value bits
      KVM: arm64: Add FEAT_FGT2 registers to the VNCR page
      KVM: arm64: Add sanitisation for FEAT_FGT2 registers
      KVM: arm64: Add trap routing for FEAT_FGT2 registers
      KVM: arm64: Add context-switch for FEAT_FGT2 registers
      KVM: arm64: Allow sysreg ranges for FGT descriptors
      KVM: arm64: Add FGT descriptors for FEAT_FGT2
      KVM: arm64: Handle TSB CSYNC traps
      KVM: arm64: nv: Hold mmu_lock when invalidating VNCR SW-TLB before translating
      KVM: arm64: nv: Handle TLBI S1E2 for VNCR invalidation with mmu_lock held
      KVM: arm64: nv: Release faulted-in VNCR page from mmu_lock critical section
      Merge branch kvm-arm64/pkvm-6.16 into kvm-arm64/pkvm-np-thp-6.16
      Merge branch kvm-arm64/pkvm-selftest-6.16 into kvm-arm64/pkvm-np-thp-6.16
      KVM: arm64: Fix documentation for vgic_its_iter_next()
      Merge branch kvm-arm64/pkvm-np-thp-6.16 into kvmarm-master/next
      Merge branch kvm-arm64/ubsan-el2 into kvmarm-master/next
      Merge branch kvm-arm64/mte-frac into kvmarm-master/next
      Merge branch kvm-arm64/fgt-masks into kvmarm-master/next
      Merge branch kvm-arm64/at-fixes-6.16 into kvmarm-master/next
      Merge branch kvm-arm64/nv-nv into kvmarm-master/next
      Merge branch kvm-arm64/misc-6.16 into kvmarm-master/next

Mark Brown (1):
      KVM: arm64: selftests: Add test for SVE host corruption

Mark Rutland (1):
      KVM: arm64: Unconditionally configure fine-grain traps

Mostafa Saleh (4):
      arm64: Introduce esr_is_ubsan_brk()
      ubsan: Remove regs from report_ubsan_failure()
      KVM: arm64: Introduce CONFIG_UBSAN_KVM_EL2
      KVM: arm64: Handle UBSAN faults

Paolo Bonzini (23):
      x86/virt/tdx: allocate tdx_sys_info in static memory
      KVM: x86: expose cpuid_entry2_find for TDX
      KVM: TDX: Skip updating CPU dirty logging request for TDs
      KVM: x86: do not allow re-enabling quirks
      KVM: x86: Allow vendor code to disable quirks
      KVM: x86: remove shadow_memtype_mask
      Merge branch 'kvm-tdx-initialization' into HEAD
      Merge branch 'kvm-tdx-mmu' into HEAD
      Merge branch 'kvm-tdx-enter-exit' into HEAD
      Merge branch 'kvm-tdx-userspace-exit' into HEAD
      Merge branch 'kvm-tdx-interrupts' into HEAD
      Merge branch 'kvm-tdx-finish-initial' into HEAD
      Merge tag 'kvm-s390-next-6.15-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      Merge branch 'kvm-6.15-rc2-cleanups' into HEAD
      Merge branch 'kvm-6.15-rc2-fixes' into HEAD
      Merge branch 'kvm-pi-fix-lockdep' into HEAD
      Merge branch 'kvm-tdx-initial' into HEAD
      Merge branch 'kvm-fixes-6.15-rc4' into HEAD
      Documentation: virt/kvm: remove unreferenced footnote
      Merge tag 'loongarch-kvm-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
      Merge tag 'kvmarm-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      Merge tag 'kvm-riscv-6.16-1' of https://github.com/kvm-riscv/linux into HEAD
      x86/tdx: mark tdh_vp_enter() as __flatten

Quentin Perret (11):
      KVM: arm64: Fix pKVM page-tracking comments
      KVM: arm64: Use 0b11 for encoding PKVM_NOPAGE
      KVM: arm64: Introduce {get,set}_host_state() helpers
      KVM: arm64: Move hyp state to hyp_vmemmap
      KVM: arm64: Defer EL2 stage-1 mapping on share
      KVM: arm64: Unconditionally cross check hyp state
      KVM: arm64: Don't WARN from __pkvm_host_share_guest()
      KVM: arm64: Selftest for pKVM transitions
      KVM: arm64: Extend pKVM selftest for np-guests
      KVM: arm64: Convert pkvm_mappings to interval tree
      KVM: arm64: Add a range to pkvm_mappings

Radim Krčmář (5):
      KVM: RISC-V: refactor vector state reset
      KVM: RISC-V: refactor sbi reset request
      KVM: RISC-V: remove unnecessary SBI reset state
      RISC-V: KVM: add KVM_CAP_RISCV_MP_STATE_RESET
      RISC-V: KVM: lock the correct mp_state during reset

Rick Edgecombe (9):
      x86/virt/tdx: Add SEAMCALL wrappers for TDX KeyID management
      x86/virt/tdx: Add SEAMCALL wrappers for TDX TD creation
      x86/virt/tdx: Add SEAMCALL wrappers for TDX vCPU creation
      x86/virt/tdx: Add SEAMCALL wrappers for TDX page cache management
      x86/virt/tdx: Add SEAMCALL wrappers for TDX VM/vCPU field access
      x86/virt/tdx: Add SEAMCALL wrappers for TDX flush operations
      KVM: x86/mmu: Implement memslot deletion for TDX
      KVM: VMX: Teach EPT violation helper about private mem
      KVM: x86/mmu: Export kvm_tdp_map_page()

Sean Christopherson (7):
      KVM: TDX: Add TDX "architectural" error codes
      KVM: VMX: Split out guts of EPT violation to common/exposed function
      KVM: TDX: Add load_mmu_pgd method for TDX
      KVM: TDX: Add support for find pending IRQ in a protected local APIC
      KVM: x86: Assume timer IRQ was injected if APIC state is protected
      KVM: TDX: Handle TDX PV MMIO hypercall
      KVM: VMX: Add a helper for NMI handling

Seongsu Park (1):
      KVM: arm64: Replace ternary flags with str_on_off() helper

Vincent Donnefort (8):
      KVM: arm64: Handle huge mappings for np-guest CMOs
      KVM: arm64: Introduce for_each_hyp_page
      KVM: arm64: Add a range to __pkvm_host_share_guest()
      KVM: arm64: Add a range to __pkvm_host_unshare_guest()
      KVM: arm64: Add a range to __pkvm_host_wrprotect_guest()
      KVM: arm64: Add a range to __pkvm_host_test_clear_young_guest()
      KVM: arm64: Stage-2 huge mappings for np-guests
      KVM: arm64: np-guest CMOs with PMD_SIZE fixmap

Wei-Lin Chang (1):
      KVM: arm64: nv: Remove clearing of ICH_LR<n>.EOI if ICH_LR<n>.HW == 1

Xiaoyao Li (2):
      KVM: x86: Introduce KVM_TDX_GET_CPUID
      KVM: x86/mmu: Taking guest pa into consideration when calculate tdp level

Yan Zhao (12):
      KVM: x86/mmu: Do not enable page track for TD guest
      KVM: x86/mmu: Bail out kvm_tdp_map_page() when VM dead
      KVM: Add parameter "kvm" to kvm_cpu_dirty_log_size() and its callers
      KVM: x86/mmu: Add parameter "kvm" to kvm_mmu_page_ad_need_write_protect()
      KVM: x86: Make cpu_dirty_log_size a per-VM value
      KVM: TDX: Handle SEPT zap error due to page add error in premap
      KVM: TDX: Detect unexpected SEPT violations due to pending SPTEs
      KVM: TDX: Retry locally in TDX EPT violation handler on RET_PF_RETRY
      KVM: TDX: Kick off vCPUs when SEAMCALL is busy during TD page removal
      KVM: x86: Introduce supported_quirks to block disabling quirks
      KVM: x86: Introduce Intel specific quirk KVM_X86_QUIRK_IGNORE_GUEST_PAT
      KVM: TDX: KVM: TDX: Always honor guest PAT on TDX enabled guests

Zhiming Hu (1):
      KVM: TDX: Register TDX host key IDs to cgroup misc controller

 Documentation/arch/arm64/silicon-errata.rst        |    2 +
 Documentation/virt/kvm/api.rst                     |   66 +-
 Documentation/virt/kvm/devices/vcpu.rst            |   24 +
 Documentation/virt/kvm/x86/index.rst               |    1 +
 Documentation/virt/kvm/x86/intel-tdx.rst           |  255 ++
 MAINTAINERS                                        |    2 +
 arch/arm64/Kconfig                                 |   17 +
 arch/arm64/include/asm/el2_setup.h                 |   16 +-
 arch/arm64/include/asm/esr.h                       |   17 +-
 arch/arm64/include/asm/fixmap.h                    |    6 +
 arch/arm64/include/asm/hardirq.h                   |    4 +-
 arch/arm64/include/asm/kvm_arm.h                   |  184 +-
 arch/arm64/include/asm/kvm_host.h                  |   88 +-
 arch/arm64/include/asm/kvm_nested.h                |  100 +
 arch/arm64/include/asm/kvm_pgtable.h               |    7 +-
 arch/arm64/include/asm/kvm_pkvm.h                  |    8 +
 arch/arm64/include/asm/sections.h                  |    1 +
 arch/arm64/include/asm/sysreg.h                    |   53 +-
 arch/arm64/include/asm/vncr_mapping.h              |    5 +
 arch/arm64/include/uapi/asm/kvm.h                  |    9 +-
 arch/arm64/kernel/cpu_errata.c                     |   14 +
 arch/arm64/kernel/cpufeature.c                     |    8 +
 arch/arm64/kernel/hyp-stub.S                       |    2 +-
 arch/arm64/kernel/image-vars.h                     |    2 +
 arch/arm64/kernel/traps.c                          |    4 +-
 arch/arm64/kernel/vmlinux.lds.S                    |   18 +-
 arch/arm64/kvm/Makefile                            |    2 +-
 arch/arm64/kvm/arm.c                               |   30 +
 arch/arm64/kvm/at.c                                |  186 +-
 arch/arm64/kvm/config.c                            | 1085 ++++++
 arch/arm64/kvm/emulate-nested.c                    |  590 ++--
 arch/arm64/kvm/handle_exit.c                       |   84 +
 arch/arm64/kvm/hyp/include/hyp/switch.h            |  160 +-
 arch/arm64/kvm/hyp/include/nvhe/mem_protect.h      |   14 +-
 arch/arm64/kvm/hyp/include/nvhe/memory.h           |   58 +-
 arch/arm64/kvm/hyp/include/nvhe/mm.h               |    4 +-
 arch/arm64/kvm/hyp/nvhe/Makefile                   |    6 +
 arch/arm64/kvm/hyp/nvhe/host.S                     |    2 +-
 arch/arm64/kvm/hyp/nvhe/hyp-init.S                 |    4 +-
 arch/arm64/kvm/hyp/nvhe/hyp-main.c                 |   20 +-
 arch/arm64/kvm/hyp/nvhe/hyp.lds.S                  |    2 +
 arch/arm64/kvm/hyp/nvhe/mem_protect.c              |  510 ++-
 arch/arm64/kvm/hyp/nvhe/mm.c                       |   97 +-
 arch/arm64/kvm/hyp/nvhe/pkvm.c                     |   47 +-
 arch/arm64/kvm/hyp/nvhe/setup.c                    |   27 +-
 arch/arm64/kvm/hyp/nvhe/switch.c                   |   14 +-
 arch/arm64/kvm/hyp/pgtable.c                       |    6 -
 arch/arm64/kvm/hyp/vgic-v3-sr.c                    |   12 +-
 arch/arm64/kvm/hyp/vhe/switch.c                    |   48 +-
 arch/arm64/kvm/hyp/vhe/tlb.c                       |    4 +-
 arch/arm64/kvm/mmu.c                               |    6 +-
 arch/arm64/kvm/nested.c                            |  846 +++--
 arch/arm64/kvm/pkvm.c                              |  164 +-
 arch/arm64/kvm/pmu-emul.c                          |   60 +-
 arch/arm64/kvm/reset.c                             |    2 +
 arch/arm64/kvm/sys_regs.c                          |  273 +-
 arch/arm64/kvm/trace_arm.h                         |    6 +-
 arch/arm64/kvm/vgic/vgic-debug.c                   |  224 ++
 arch/arm64/kvm/vgic/vgic-its.c                     |   39 +-
 arch/arm64/kvm/vgic/vgic-v3-nested.c               |    3 -
 arch/arm64/kvm/vgic/vgic.h                         |   33 +
 arch/arm64/tools/cpucaps                           |    2 +
 arch/arm64/tools/sysreg                            | 1012 +++++-
 arch/loongarch/include/asm/kvm_host.h              |    2 +-
 arch/loongarch/include/asm/kvm_vcpu.h              |    2 +-
 arch/loongarch/kvm/exit.c                          |   37 +-
 arch/loongarch/kvm/mmu.c                           |   15 +-
 arch/riscv/include/asm/kvm_aia.h                   |    3 -
 arch/riscv/include/asm/kvm_host.h                  |   17 +-
 arch/riscv/include/asm/kvm_vcpu_sbi.h              |    3 +
 arch/riscv/include/asm/kvm_vcpu_vector.h           |    6 +-
 arch/riscv/kernel/head.S                           |   10 +
 arch/riscv/kvm/Kconfig                             |    2 +-
 arch/riscv/kvm/aia_device.c                        |    4 +-
 arch/riscv/kvm/vcpu.c                              |   64 +-
 arch/riscv/kvm/vcpu_sbi.c                          |   32 +-
 arch/riscv/kvm/vcpu_sbi_hsm.c                      |   13 +-
 arch/riscv/kvm/vcpu_sbi_system.c                   |   10 +-
 arch/riscv/kvm/vcpu_vector.c                       |   13 +-
 arch/riscv/kvm/vm.c                                |   13 +
 arch/x86/include/asm/kvm-x86-ops.h                 |    5 +-
 arch/x86/include/asm/kvm_host.h                    |   34 +-
 arch/x86/include/asm/posted_intr.h                 |    5 +
 arch/x86/include/asm/shared/tdx.h                  |    9 +-
 arch/x86/include/asm/tdx.h                         |   75 +
 .../vmx/tdx => include/asm}/tdx_global_metadata.h  |   19 +
 arch/x86/include/asm/vmx.h                         |    2 +
 arch/x86/include/uapi/asm/kvm.h                    |   71 +
 arch/x86/include/uapi/asm/vmx.h                    |    5 +-
 arch/x86/kernel/traps.c                            |    2 +-
 arch/x86/kvm/Kconfig                               |   12 +
 arch/x86/kvm/Makefile                              |    1 +
 arch/x86/kvm/cpuid.c                               |   52 +-
 arch/x86/kvm/cpuid.h                               |   33 +-
 arch/x86/kvm/irq.c                                 |    3 +
 arch/x86/kvm/lapic.c                               |   15 +-
 arch/x86/kvm/lapic.h                               |    2 +
 arch/x86/kvm/mmu.h                                 |    6 +-
 arch/x86/kvm/mmu/mmu.c                             |   39 +-
 arch/x86/kvm/mmu/mmu_internal.h                    |    5 +-
 arch/x86/kvm/mmu/page_track.c                      |    3 +
 arch/x86/kvm/mmu/spte.c                            |   29 +-
 arch/x86/kvm/mmu/spte.h                            |    1 -
 arch/x86/kvm/mmu/tdp_mmu.c                         |   49 +-
 arch/x86/kvm/smm.h                                 |    3 +
 arch/x86/kvm/svm/svm.c                             |    1 +
 arch/x86/kvm/vmx/common.h                          |  182 +
 arch/x86/kvm/vmx/main.c                            | 1121 ++++++-
 arch/x86/kvm/vmx/nested.c                          |   12 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |   52 +-
 arch/x86/kvm/vmx/pmu_intel.h                       |   28 +
 arch/x86/kvm/vmx/posted_intr.c                     |   28 +-
 arch/x86/kvm/vmx/posted_intr.h                     |    2 +
 arch/x86/kvm/vmx/tdx.c                             | 3526 ++++++++++++++++++++
 arch/x86/kvm/vmx/tdx.h                             |  204 ++
 arch/x86/kvm/vmx/tdx_arch.h                        |  167 +
 arch/x86/kvm/vmx/tdx_errno.h                       |   40 +
 arch/x86/kvm/vmx/vmx.c                             |  291 +-
 arch/x86/kvm/vmx/vmx.h                             |  140 +-
 arch/x86/kvm/vmx/x86_ops.h                         |  111 +-
 arch/x86/kvm/x86.c                                 |   99 +-
 arch/x86/kvm/x86.h                                 |   31 +-
 arch/x86/virt/vmx/tdx/seamcall.S                   |    3 +
 arch/x86/virt/vmx/tdx/tdx.c                        |  423 ++-
 arch/x86/virt/vmx/tdx/tdx.h                        |   48 +-
 arch/x86/virt/vmx/tdx/tdx_global_metadata.c        |   50 +
 include/linux/kvm_dirty_ring.h                     |   11 +-
 include/linux/kvm_host.h                           |   10 +
 include/linux/misc_cgroup.h                        |    4 +
 include/linux/ubsan.h                              |    6 +-
 include/uapi/linux/kvm.h                           |    4 +
 kernel/cgroup/misc.c                               |    4 +
 lib/Kconfig.ubsan                                  |    9 +
 lib/ubsan.c                                        |    8 +-
 scripts/Makefile.ubsan                             |    5 +-
 tools/arch/arm64/include/asm/sysreg.h              |   65 +-
 tools/testing/selftests/kvm/Makefile               |    2 +-
 tools/testing/selftests/kvm/Makefile.kvm           |   18 +
 tools/testing/selftests/kvm/arm64/host_sve.c       |  127 +
 tools/testing/selftests/kvm/arm64/set_id_regs.c    |   77 +-
 tools/testing/selftests/kvm/include/kvm_util.h     |    6 +
 .../kvm/include/loongarch/kvm_util_arch.h          |    7 +
 .../selftests/kvm/include/loongarch/processor.h    |  141 +
 .../selftests/kvm/include/loongarch/ucall.h        |   20 +
 .../selftests/kvm/include/riscv/processor.h        |   23 +-
 tools/testing/selftests/kvm/lib/kvm_util.c         |    3 +
 .../selftests/kvm/lib/loongarch/exception.S        |   59 +
 .../selftests/kvm/lib/loongarch/processor.c        |  346 ++
 tools/testing/selftests/kvm/lib/loongarch/ucall.c  |   38 +
 tools/testing/selftests/kvm/lib/riscv/handlers.S   |  139 +-
 tools/testing/selftests/kvm/lib/riscv/processor.c  |    2 +-
 tools/testing/selftests/kvm/riscv/arch_timer.c     |    2 +-
 tools/testing/selftests/kvm/riscv/ebreak_test.c    |    2 +-
 tools/testing/selftests/kvm/riscv/get-reg-list.c   |  132 +
 tools/testing/selftests/kvm/riscv/sbi_pmu_test.c   |   24 +-
 .../testing/selftests/kvm/set_memory_region_test.c |    2 +-
 virt/kvm/dirty_ring.c                              |   11 +-
 virt/kvm/kvm_main.c                                |   26 +-
 158 files changed, 13224 insertions(+), 1989 deletions(-)
 create mode 100644 Documentation/virt/kvm/x86/intel-tdx.rst
 create mode 100644 arch/arm64/kvm/config.c
 rename arch/x86/{virt/vmx/tdx => include/asm}/tdx_global_metadata.h (58%)
 create mode 100644 arch/x86/kvm/vmx/common.h
 create mode 100644 arch/x86/kvm/vmx/pmu_intel.h
 create mode 100644 arch/x86/kvm/vmx/tdx.c
 create mode 100644 arch/x86/kvm/vmx/tdx.h
 create mode 100644 arch/x86/kvm/vmx/tdx_arch.h
 create mode 100644 arch/x86/kvm/vmx/tdx_errno.h
 create mode 100644 tools/testing/selftests/kvm/arm64/host_sve.c
 create mode 100644 tools/testing/selftests/kvm/include/loongarch/kvm_util_arch.h
 create mode 100644 tools/testing/selftests/kvm/include/loongarch/processor.h
 create mode 100644 tools/testing/selftests/kvm/include/loongarch/ucall.h
 create mode 100644 tools/testing/selftests/kvm/lib/loongarch/exception.S
 create mode 100644 tools/testing/selftests/kvm/lib/loongarch/processor.c
 create mode 100644 tools/testing/selftests/kvm/lib/loongarch/ucall.c


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ