<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in virt.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>0fc8f6200d2313278fbf4539bbab74677c685531 - Merge drm/drm-fixes into drm-misc-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#0fc8f6200d2313278fbf4539bbab74677c685531</link>
        <description>Merge drm/drm-fixes into drm-misc-fixesGetting fixes and updates from v7.1-rc1.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Mon, 27 Apr 2026 10:26:49 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>01f492e1817e858d1712f2489d0afbaa552f417b - Merge tag &apos;for-linus&apos; of git://git.kernel.org/pub/scm/virt/kvm/kvm</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#01f492e1817e858d1712f2489d0afbaa552f417b</link>
        <description>Merge tag &apos;for-linus&apos; of git://git.kernel.org/pub/scm/virt/kvm/kvmPull kvm updates from Paolo Bonzini: &quot;Arm:   - Add support for tracing in the standalone EL2 hypervisor code,     which should help both debugging and performance analysis. This     uses the new infrastructure for &apos;remote&apos; trace buffers that can be     exposed by non-kernel entities such as firmware, and which came     through the tracing tree   - Add support for GICv5 Per Processor Interrupts (PPIs), as the     starting point for supporting the new GIC architecture in KVM   - Finally add support for pKVM protected guests, where pages are     unmapped from the host as they are faulted into the guest and can     be shared back from the guest using pKVM hypercalls. Protected     guests are created using a new machine type identifier. As the     elusive guestmem has not yet delivered on its promises, anonymous     memory is also supported     This is only a first step towards full isolation from the host; for     example, the CPU register state and DMA accesses are not yet     isolated. Because this does not really yet bring fully what it     promises, it is hidden behind CONFIG_ARM_PKVM_GUEST +     &apos;kvm-arm.mode=protected&apos;, and also triggers TAINT_USER when a VM is     created. Caveat emptor   - Rework the dreaded user_mem_abort() function to make it more     maintainable, reducing the amount of state being exposed to the     various helpers and rendering a substantial amount of state     immutable   - Expand the Stage-2 page table dumper to support NV shadow page     tables on a per-VM basis   - Tidy up the pKVM PSCI proxy code to be slightly less hard to     follow   - Fix both SPE and TRBE in non-VHE configurations so that they do not     generate spurious, out of context table walks that ultimately lead     to very bad HW lockups   - A small set of patches fixing the Stage-2 MMU freeing in error     cases   - Tighten-up accepted SMC immediate value to be only #0 for host     SMCCC calls   - The usual cleanups and other selftest churn  LoongArch:   - Use CSR_CRMD_PLV for kvm_arch_vcpu_in_kernel()   - Add DMSINTC irqchip in kernel support  RISC-V:   - Fix steal time shared memory alignment checks   - Fix vector context allocation leak   - Fix array out-of-bounds in pmu_ctr_read() and pmu_fw_ctr_read_hi()   - Fix double-free of sdata in kvm_pmu_clear_snapshot_area()   - Fix integer overflow in kvm_pmu_validate_counter_mask()   - Fix shift-out-of-bounds in make_xfence_request()   - Fix lost write protection on huge pages during dirty logging   - Split huge pages during fault handling for dirty logging   - Skip CSR restore if VCPU is reloaded on the same core   - Implement kvm_arch_has_default_irqchip() for KVM selftests   - Factored-out ISA checks into separate sources   - Added hideleg to struct kvm_vcpu_config   - Factored-out VCPU config into separate sources   - Support configuration of per-VM HGATP mode from KVM user space  s390:   - Support for ESA (31-bit) guests inside nested hypervisors   - Remove restriction on memslot alignment, which is not needed     anymore with the new gmap code   - Fix LPSW/E to update the bear (which of course is the breaking     event address register)  x86:   - Shut up various UBSAN warnings on reading module parameter before     they were initialized   - Don&apos;t zero-allocate page tables that are used for splitting     hugepages in the TDP MMU, as KVM is guaranteed to set all SPTEs in     the page table and thus write all bytes   - As an optimization, bail early when trying to unsync 4KiB mappings     if the target gfn can just be mapped with a 2MiB hugepage  x86 generic:   - Copy single-chunk MMIO write values into struct kvm_vcpu (more     precisely struct kvm_mmio_fragment) to fix use-after-free stack     bugs where KVM would dereference stack pointer after an exit to     userspace   - Clean up and comment the emulated MMIO code to try to make it     easier to maintain (not necessarily &quot;easy&quot;, but &quot;easier&quot;)   - Move VMXON+VMXOFF and EFER.SVME toggling out of KVM (not *all* of     VMX and SVM enabling) as it is needed for trusted I/O   - Advertise support for AVX512 Bit Matrix Multiply (BMM) instructions   - Immediately fail the build if a required #define is missing in one     of KVM&apos;s headers that is included multiple times   - Reject SET_GUEST_DEBUG with -EBUSY if there&apos;s an already injected     exception, mostly to prevent syzkaller from abusing the uAPI to     trigger WARNs, but also because it can help prevent userspace from     unintentionally crashing the VM   - Exempt SMM from CPUID faulting on Intel, as per the spec   - Misc hardening and cleanup changes  x86 (AMD):   - Fix and optimize IRQ window inhibit handling for AVIC; make it     per-vCPU so that KVM doesn&apos;t prematurely re-enable AVIC if multiple     vCPUs have to-be-injected IRQs   - Clean up and optimize the OSVW handling, avoiding a bug in which     KVM would overwrite state when enabling virtualization on multiple     CPUs in parallel. This should not be a problem because OSVW should     usually be the same for all CPUs   - Drop a WARN in KVM_MEMORY_ENCRYPT_REG_REGION where KVM complains     about a &quot;too large&quot; size based purely on user input   - Clean up and harden the pinning code for KVM_MEMORY_ENCRYPT_REG_REGION   - Disallow synchronizing a VMSA of an already-launched/encrypted     vCPU, as doing so for an SNP guest will crash the host due to an     RMP violation page fault   - Overhaul KVM&apos;s APIs for detecting SEV+ guests so that VM-scoped     queries are required to hold kvm-&gt;lock, and enforce it by lockdep.     Fix various bugs where sev_guest() was not ensured to be stable for     the whole duration of a function or ioctl   - Convert a pile of kvm-&gt;lock SEV code to guard()   - Play nicer with userspace that does not enable     KVM_CAP_EXCEPTION_PAYLOAD, for which KVM needs to set CR2 and DR6     as a response to ioctls such as KVM_GET_VCPU_EVENTS (even if the     payload would end up in EXITINFO2 rather than CR2, for example).     Only set CR2 and DR6 when consumption of the payload is imminent,     but on the other hand force delivery of the payload in all paths     where userspace retrieves CR2 or DR6   - Use vcpu-&gt;arch.cr2 when updating vmcb12&apos;s CR2 on nested #VMEXIT     instead of vmcb02-&gt;save.cr2. The value is out of sync after a     save/restore or after a #PF is injected into L2   - Fix a class of nSVM bugs where some fields written by the CPU are     not synchronized from vmcb02 to cached vmcb12 after VMRUN, and so     are not up-to-date when saved by KVM_GET_NESTED_STATE   - Fix a class of bugs where the ordering between KVM_SET_NESTED_STATE     and KVM_SET_{S}REGS could cause vmcb02 to be incorrectly     initialized after save+restore   - Add a variety of missing nSVM consistency checks   - Fix several bugs where KVM failed to correctly update VMCB fields     on nested #VMEXIT   - Fix several bugs where KVM failed to correctly synthesize #UD or     #GP for SVM-related instructions   - Add support for save+restore of virtualized LBRs (on SVM)   - Refactor various helpers and macros to improve clarity and     (hopefully) make the code easier to maintain   - Aggressively sanitize fields when copying from vmcb12, to guard     against unintentionally allowing L1 to utilize yet-to-be-defined     features   - Fix several bugs where KVM botched rAX legality checks when     emulating SVM instructions. There are remaining issues in that KVM     doesn&apos;t handle size prefix overrides for 64-bit guests   - Fail emulation of VMRUN/VMLOAD/VMSAVE if mapping vmcb12 fails     instead of somewhat arbitrarily synthesizing #GP (i.e. don&apos;t double     down on AMD&apos;s architectural but sketchy behavior of generating #GP     for &quot;unsupported&quot; addresses)   - Cache all used vmcb12 fields to further harden against TOCTOU bugs  x86 (Intel):   - Drop obsolete branch hint prefixes from the VMX instruction macros   - Use ASM_INPUT_RM() in __vmcs_writel() to coerce clang into using a     register input when appropriate   - Code cleanups  guest_memfd:   - Don&apos;t mark guest_memfd folios as accessed, as guest_memfd doesn&apos;t     support reclaim, the memory is unevictable, and there is no storage     to write back to  LoongArch selftests:   - Add KVM PMU test cases  s390 selftests:   - Enable more memory selftests  x86 selftests:   - Add support for Hygon CPUs in KVM selftests   - Fix a bug in the MSR test where it would get false failures on     AMD/Hygon CPUs with exactly one of RDPID or RDTSCP   - Add an MADV_COLLAPSE testcase for guest_memfd as a regression test     for a bug where the kernel would attempt to collapse guest_memfd     folios against KVM&apos;s will&quot;* tag &apos;for-linus&apos; of git://git.kernel.org/pub/scm/virt/kvm/kvm: (373 commits)  KVM: x86: use inlines instead of macros for is_sev_*guest  x86/virt: Treat SVM as unsupported when running as an SEV+ guest  KVM: SEV: Goto an existing error label if charging misc_cg for an ASID fails  KVM: SVM: Move lock-protected allocation of SEV ASID into a separate helper  KVM: SEV: use mutex guard in snp_handle_guest_req()  KVM: SEV: use mutex guard in sev_mem_enc_unregister_region()  KVM: SEV: use mutex guard in sev_mem_enc_ioctl()  KVM: SEV: use mutex guard in snp_launch_update()  KVM: SEV: Assert that kvm-&gt;lock is held when querying SEV+ support  KVM: SEV: Document that checking for SEV+ guests when reclaiming memory is &quot;safe&quot;  KVM: SEV: Hide &quot;struct kvm_sev_info&quot; behind CONFIG_KVM_AMD_SEV=y  KVM: SEV: WARN on unhandled VM type when initializing VM  KVM: LoongArch: selftests: Add PMU overflow interrupt test  KVM: LoongArch: selftests: Add basic PMU event counting test  KVM: LoongArch: selftests: Add cpucfg read/write helpers  LoongArch: KVM: Add DMSINTC inject msi to vCPU  LoongArch: KVM: Add DMSINTC device support  LoongArch: KVM: Make vcpu_is_preempted() as a macro rather than function  LoongArch: KVM: Move host CSR_GSTAT save and restore in context switch  LoongArch: KVM: Move host CSR_EENTRY save and restore in context switch  ...

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Fri, 17 Apr 2026 16:18:03 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>4a530993dafec27085321424aeab303eb0e7869e - Merge tag &apos;kvm-x86-vmxon-7.1&apos; of https://github.com/kvm-x86/linux into HEAD</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#4a530993dafec27085321424aeab303eb0e7869e</link>
        <description>Merge tag &apos;kvm-x86-vmxon-7.1&apos; of https://github.com/kvm-x86/linux into HEADKVM x86 VMXON and EFER.SVME extraction for 7.1Move _only_ VMXON+VMXOFF and EFER.SVME toggling out of KVM (versus all of VMXand SVM enabling) out of KVM and into the core kernel so that non-KVM TDXenabling, e.g. for trusted I/O, can make SEAMCALLs without needing to ensureKVM is fully loaded.TIO isn&apos;t a hypervisor, and isn&apos;t trying to be a hypervisor. Specifically, TIOshould _never_ have it&apos;s own VMCSes (that are visible to the host; theTDX-Module has it&apos;s own VMCSes to do SEAMCALL/SEAMRET), and so there is simplyno reason to move that functionality out of KVM.With that out of the way, dealing with VMXON/VMXOFF and EFER.SVME is a fairlysimple refcounting game.

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Mon, 13 Apr 2026 13:04:48 +0200</pubDate>
        <dc:creator>Paolo Bonzini &lt;pbonzini@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>8528a7f9c91d917ad2b3b6a71f1cb7e00b1fb1bf - x86/virt: Add refcounting of VMX/SVM usage to support multiple in-kernel users</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#8528a7f9c91d917ad2b3b6a71f1cb7e00b1fb1bf</link>
        <description>x86/virt: Add refcounting of VMX/SVM usage to support multiple in-kernel usersImplement a per-CPU refcounting scheme so that &quot;users&quot; of hardwarevirtualization, e.g. KVM and the future TDX code, can co-exist withoutpulling the rug out from under each other.  E.g. if KVM were to disableVMX on module unload or when the last KVM VM was destroyed, SEAMCALLs fromthe TDX subsystem would #UD and panic the kernel.Disable preemption in the get/put APIs to ensure virtualization is fullyenabled/disabled before returning to the caller.  E.g. if the task werepreempted after a 0=&gt;1 transition, the new task would see a 1=&gt;2 and thusreturn without enabling virtualization.  Explicitly disable preemptioninstead of requiring the caller to do so, because the need to disablepreemption is an artifact of the implementation.  E.g. from KVM&apos;sperspective there is no _need_ to disable preemption as KVM guarantees thepCPU on which it is running is stable (but preemption is enabled).Opportunistically abstract away SVM vs. VMX in the public APIs by usingX86_FEATURE_{SVM,VMX} to communicate what technology the caller wants toenable and use.Cc: Xu Yilun &lt;yilun.xu@linux.intel.com&gt;Reviewed-by: Chao Gao &lt;chao.gao@intel.com&gt;Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-10-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:55 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
<item>
        <title>428afac5a8ea9c55bb8408e02dc92b8f85bf5f30 - KVM: x86: Move bulk of emergency virtualizaton logic to virt subsystem</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#428afac5a8ea9c55bb8408e02dc92b8f85bf5f30</link>
        <description>KVM: x86: Move bulk of emergency virtualizaton logic to virt subsystemMove the majority of the code related to disabling hardware virtualizationin emergency from KVM into the virt subsystem so that virt can take fullownership of the state of SVM/VMX.  This will allow refcounting usage ofSVM/VMX so that KVM and the TDX subsystem can enable VMX without stompingon each other.To route the emergency callback to the &quot;right&quot; vendor code, add to avoidmixing vendor and generic code, implement a x86_virt_ops structure totrack the emergency callback, along with the SVM vs. VMX (vs. &quot;none&quot;)feature that is active.To avoid having to choose between SVM and VMX, simply refuse to enableeither if both are somehow supported.  No known CPU supports both SVM andVMX, and it&apos;s comically unlikely such a CPU will ever exist.Leave KVM&apos;s clearing of loaded VMCSes and MSR_VM_HSAVE_PA in KVM, via acallback explicitly scoped to KVM.  Loading VMCSes and saving/restoringhost state are firmly tied to running VMs, and thus are (a) KVM&apos;sresponsibility and (b) operations that are still exclusively reserved forKVM (as far as in-tree code is concerned).  I.e. the contract beingestablished is that non-KVM subsystems can utilize virtualization, but forall intents and purposes cannot act as full-blown hypervisors.Reviewed-by: Chao Gao &lt;chao.gao@intel.com&gt;Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-9-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:54 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
<item>
        <title>32d76cdfa1222c88262da5b12e0b2bba444c96fa - KVM: SVM: Move core EFER.SVME enablement to kernel</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#32d76cdfa1222c88262da5b12e0b2bba444c96fa</link>
        <description>KVM: SVM: Move core EFER.SVME enablement to kernelMove the innermost EFER.SVME logic out of KVM and into to core x86 to landthe SVM support alongside VMX support.  This will allow providing a moreunified API from the kernel to KVM, and will allow moving the bulk of theemergency disabling insanity out of KVM without having a weird splitbetween kernel and KVM for SVM vs. VMX.No functional change intended.Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-8-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:53 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
<item>
        <title>920da4f75519a3fa3fe2fc25458445b561653610 - KVM: VMX: Move core VMXON enablement to kernel</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#920da4f75519a3fa3fe2fc25458445b561653610</link>
        <description>KVM: VMX: Move core VMXON enablement to kernelMove the innermost VMXON+VMXOFF logic out of KVM and into to core x86 sothat TDX can (eventually) force VMXON without having to rely on KVM beingloaded, e.g. to do SEAMCALLs during initialization.Opportunistically update the comment regarding emergency disabling via NMIto clarify that virt_rebooting will be set by _another_ emergency callback,i.e. that virt_rebooting doesn&apos;t need to be set before VMCLEAR, onlybefore _this_ invocation does VMXOFF.Acked-by: Dave Hansen &lt;dave.hansen@linux.intel.com&gt;Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-7-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:52 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
<item>
        <title>405b7c27934eaabbcc52ccfbaeb22ef966b6b5f0 - KVM: VMX: Unconditionally allocate root VMCSes during boot CPU bringup</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#405b7c27934eaabbcc52ccfbaeb22ef966b6b5f0</link>
        <description>KVM: VMX: Unconditionally allocate root VMCSes during boot CPU bringupAllocate the root VMCS (misleading called &quot;vmxarea&quot; and &quot;kvm_area&quot; in KVM)for each possible CPU during early boot CPU bringup, before early TDXinitialization, so that TDX can eventually do VMXON on-demand (to makeSEAMCALLs) without needing to load kvm-intel.ko.  Allocate the pages earlyon, e.g. instead of trying to do so on-demand, to avoid having to juggleallocation failures at runtime.Opportunistically rename the per-CPU pointers to better reflect the roleof the VMCS.  Use Intel&apos;s &quot;root VMCS&quot; terminology, e.g. from various VMCSpatents[1][2] and older SDMs, not the more opaque &quot;VMXON region&quot; used inrecent versions of the SDM.  While it&apos;s possible the VMCS passed to VMXONno longer serves as _the_ root VMCS on modern CPUs, it is still in effecta &quot;root mode VMCS&quot;, as described in the patents.Link: https://patentimages.storage.googleapis.com/c7/e4/32/d7a7def5580667/WO2013101191A1.pdf [1]Link: https://patentimages.storage.googleapis.com/13/f6/8d/1361fab8c33373/US20080163205A1.pdf [2]Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-5-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:50 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
<item>
        <title>a1450a8156c65d9fe6111627094c26359d2e2274 - KVM: x86: Move &quot;kvm_rebooting&quot; to kernel as &quot;virt_rebooting&quot;</title>
        <link>http://kernelsources.org:8080/source/history/linux/arch/x86/include/asm/virt.h#a1450a8156c65d9fe6111627094c26359d2e2274</link>
        <description>KVM: x86: Move &quot;kvm_rebooting&quot; to kernel as &quot;virt_rebooting&quot;Move &quot;kvm_rebooting&quot; to the kernel, exported for KVM, as one of many stepstowards extracting the innermost VMXON and EFER.SVME management logic outof KVM and into to core x86.For lack of a better name, call the new file &quot;hw.c&quot;, to yield &quot;virthardware&quot; when combined with its parent directory.No functional change intended.Tested-by: Chao Gao &lt;chao.gao@intel.com&gt;Reviewed-by: Dan Williams &lt;dan.j.williams@intel.com&gt;Tested-by: Sagi Shahar &lt;sagis@google.com&gt;Link: https://patch.msgid.link/20260214012702.2368778-4-seanjc@google.comSigned-off-by: Sean Christopherson &lt;seanjc@google.com&gt;

            List of files:
            /linux/arch/x86/include/asm/virt.h</description>
        <pubDate>Sat, 14 Feb 2026 02:26:49 +0100</pubDate>
        <dc:creator>Sean Christopherson &lt;seanjc@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
