From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E0D23603FB; Sat, 19 Sep 2026 18:33:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789842827; cv=none; b=auK/dZ95HzEtzX5EdLUK0AdthW19vYmkv6gEBKXwI3LzDB80VAtfPe8qe1kf4EpFze/8P0TutsWOl8vOAwclMOFOeegIjGlz6KLqeHEWqQHu0qoPxFX7bWQPC3OiJrvT3RCCWYfAxaPFRmHGpZG/v6lsHW9vsbAodoSL2iMWnco= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789842827; c=relaxed/simple; bh=Sy3grNUZpsuPuSaITZoBHZy5+06ixfUU2LxIcJOYwoA=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=FW3f3CooiJctYZvoignK1WEx+WMYykaTu/XFmic74rXk0ptbcgrsCJ5mGkHFVgRxrvjvOY1+dzA8S7FkUAtKnI1DK3zofigQNjRDpanmHsAAvONq3y1dvaA5D+ZC96kJb1zOvF6tbUup/8oIzsC6ZdzIaYzv1mtCZsFAADK1qe4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GfPS4prm; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GfPS4prm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B88871F000FF; Sat, 19 Sep 2026 18:33:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789842825; bh=5uEtSw9FNGtwKppfcWhsnmvvQQMRQcLU2dZAmIiU/XQ=; h=Date:From:To:Cc:Subject; b=GfPS4prmdrAXMceCA6QEwctwxCbaHvuayQbg2JR/98ys0oyDK51DEyGffjabnY9x6 oSbhK4oz8FWG5p2cah1fYPQjX+Q2busExYDZTK9FGDhd2CPZncpcZMhlRiTA9zVJ/y jFZK62+QmQe14ms/INBXzFOgHP/Z98OKziWCG/SoLA+DfTLe+MVQEgGyGHxZui3Srk o4G+7zZ0+/ETWVyTU4GFVSplqvLR5Wg0LUzoU95otSojb1EYJR3eH5ldyXqPRtmoor ErJSXL+i8PT3+847pABJGrlZAlUUQjE9G2LILXhr7KJl7xFZKHhBO2T3932OC6kM4H azEft9qAx8P1Q== Date: Sat, 19 Sep 2026 11:33:44 -0700 From: Oliver Upton To: Paolo Bonzini Cc: Marc Zyngier , Sean Christopherson , kvmarm@lists.linux.dev, kvm@vger.kernel.org Subject: [GIT PULL] KVM/arm64 fixes for 7.3, round #1 Message-ID: Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Paolo, Here's the first pile of fixes for 7.3. The diff is definitely on the larger end, although this is mostly explained by the inclusion of a selftest for the ITS table changes which are quite tricky. Also worth noting that this selftest mixed poorly in next with Sean's PPC selftest prefix due to the library changes [*]. Otherwise, the most noteworthy change here is definitely the pKVM patches to unmap the EL2 hypervisor's stack pages from the host, for obvious reasons... Details on the rest of it can be found in the tag. Please expect at least one more pull for 7.3, there's some additional changes that are still brewing. Please pull. Thanks, Oliver The following changes since commit fd73f4a6659897191fa0d40695fe370925dd3780: Linux 7.3-rc3 (2026-09-13 14:38:02 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git/ tags/kvmarm-fixes-7.3-1 for you to fetch changes up to 6b1bca1b1ab77f60a62087337bfe6e2f0efb9e6d: KVM: arm64: Fix AArch32 DBGBXVR handling (2026-09-19 11:14:22 -0700) ---------------------------------------------------------------- KVM/arm64 changes for 7.3, take #2 - Invalidate the ITS translation cache when the guest changes the base address of the ITS tables (Fuad Tabba) - Skip saving ITS devices with device IDs that are out-of-bounds rather than failing the entire ITS save ioctl (Fuad Tabba) - Close race between VM teardown and invalidations of nested MMUs when handling MMU operations that are allowed to block (Lorenzo Stoakes) - Various fixes for the handling of the host's untrusted SVE configuration in pKVM (Fuad Tabba) - Make sure that empty SMCCC ranges based at 0 are rejected by the kvm_smccc_set_filter() (Karl Mehltretter) - Revoke the host mapping for pKVM's private stack pages, along with a new sanity check that all mappings in the hyp's private VA range have been correctly marked as hyp-owned (Fuad Tabba) - Lifetime fixes for the array of shadow stage-2 MMUs, ensuring that concurrent vCPU initialization cannot relocate in-use MMUs. Defer the freeing of shadow stage-2 MMUs to the point that no other users (e.g. MMU notifier) could reference them (Marc Zyngier) - Drop useless WARN when rejecting an unsupported ioctl for pKVM (Fuad Tabba) - Fix the steal_time selftest to install correctly-sized mappings for non-4K hosts (Sebastian Ott) - Correct mapping of fine-grained trap for GCSPOPX instruction (Mark Brown) - Fix KVM_BUG_ON() due to missing handling of DBGBXVR from 32-bit guests (Karl Mehltretter) ---------------------------------------------------------------- Fuad Tabba (13): KVM: arm64: vgic-its: Free the caches when GITS_BASER changes Revert "KVM: arm64: vgic-its: Don't save collections the table cannot hold" KVM: arm64: vgic-its: Skip unreachable devices instead of failing the save KVM: arm64: selftests: Add ITS table save tests KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve() KVM: arm64: Do not clear VM-wide SVE feature on vCPU init failure KVM: arm64: Key unpin_host_sve_state() on the state it unpins KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2 KVM: arm64: Transfer the hyp stack pages out of the host stage-2 KVM: arm64: Match hyp text by physical address in fix_host_ownership() KVM: arm64: Move the private VA allocation cursor to __io_map_next KVM: arm64: Check every private mapping is hyp-owned at pKVM init KVM: arm64: Don't WARN on an unknown VM ioctl in protected mode Karl Mehltretter (3): KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0 KVM: arm64: selftests: Test empty SMCCC filter range at base 0 KVM: arm64: Fix AArch32 DBGBXVR handling Lorenzo Stoakes (ARM) (2): KVM: arm64: Fix spurious warning for benign stage 2 teardown race KVM: arm64: nv: Fix null ptr deref on nested wp/unmap, teardown race Marc Zyngier (2): KVM: arm64: nv: Fix life cycle of the nested_mmus array KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction Mark Brown (1): KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP Sebastian Ott (1): KVM: selftests: fix steal_time for arm64 with host page size > 4K arch/arm64/include/asm/kvm_host.h | 2 +- arch/arm64/include/asm/kvm_nested.h | 3 +- arch/arm64/include/asm/kvm_pkvm.h | 3 +- arch/arm64/kvm/arm.c | 8 +- arch/arm64/kvm/emulate-nested.c | 2 +- arch/arm64/kvm/hyp/include/nvhe/mem_protect.h | 2 + arch/arm64/kvm/hyp/include/nvhe/mm.h | 1 + arch/arm64/kvm/hyp/nvhe/mem_protect.c | 20 + arch/arm64/kvm/hyp/nvhe/mm.c | 79 +++- arch/arm64/kvm/hyp/nvhe/pkvm.c | 29 +- arch/arm64/kvm/hyp/nvhe/setup.c | 16 +- arch/arm64/kvm/hypercalls.c | 3 +- arch/arm64/kvm/mmu.c | 15 +- arch/arm64/kvm/nested.c | 111 +++--- arch/arm64/kvm/sys_regs.c | 1 + arch/arm64/kvm/vgic/vgic-its.c | 46 ++- tools/testing/selftests/kvm/Makefile.kvm | 1 + tools/testing/selftests/kvm/arm64/smccc_filter.c | 4 + tools/testing/selftests/kvm/arm64/vgic_its_save.c | 441 ++++++++++++++++++++++ tools/testing/selftests/kvm/steal_time.c | 30 +- 20 files changed, 700 insertions(+), 117 deletions(-) create mode 100644 tools/testing/selftests/kvm/arm64/vgic_its_save.c