From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F0C01CFD313 for ; Mon, 24 Nov 2025 12:54:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:MIME-Version: References:In-Reply-To:Subject:Cc:To:From:Message-ID:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=XcesIxOO/Np+qLcxiFFW3W+6uCyBSgujCnq5oL1kJWY=; b=KuU0u6F9EKV+MvK7yi3roOj3jR TDH2BcgD5wr1QhNMOgGb0tt7whd+1jH13HJKCqfq20U5/K4KfVzSOwUHy+R5h1fxcHQPxUiL9My5b 6rJ71fDVn5d2K6gTxxwA5LQWTs/OvUziPQuADbzY47jAxh0D5wlcLxqYTfrAKCNswZwwjbklC+oHw q7xCBOyryCa9yz95GhqaMYW59AFiGKaf8NUd8XkIPMUCzhLBD6hX0rt0+jaKij7JCFUD9A+DHuaZz BnNT/PnJvapj0IyFUCgycGP7koqwapVcWTdYzXqlRhAr3OSaFoLyyIY6sr9aGXZObeIRZqMnsuux9 ReumB+Cw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vNW5c-0000000Bg1z-0yTL; Mon, 24 Nov 2025 12:54:44 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vNW5b-0000000Bg1g-02AX for linux-arm-kernel@lists.infradead.org; Mon, 24 Nov 2025 12:54:43 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 2B137601B8; Mon, 24 Nov 2025 12:54:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9747C4CEF1; Mon, 24 Nov 2025 12:54:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763988881; bh=BVX+0lqg+9IsvmNv+Eftv4V7s42mUPCpJ0PE8synrpU=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=gIiXq+m6h5hQqpxycXFOLH9UJvEqHMIiF84Y+h0dZUz+elmZLgFZlzGb2U/22BcqX n7R5gni5H5oSANu8/QCrCtqj07B0IwpE++nv3pVNFlRbpH/mh72ZmQfUBcgoopysM8 sVDC32YKo4ovKJRBlKrYThowIdRiVhh/HeQn4evvfHdeZZssYTtYyuZPu32z7LdNQX CsVXEQmXHg5iMmjUyfFiAu9CZrYyLh+070cFSEKttBLoktF3PlE9rkvybYLohk2z+9 209X+976hmSi1ukMgLTYv76jobon7dXqgRbKv4xisviSjl3ty1tmS9SK9SBMKiJs8q gGhuNjfMt/Etw== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vNW5X-00000007qqJ-1bmx; Mon, 24 Nov 2025 12:54:39 +0000 Date: Mon, 24 Nov 2025 12:54:38 +0000 Message-ID: <86pl97r3ox.wl-maz@kernel.org> From: Marc Zyngier To: Jack Thomson Cc: oliver.upton@linux.dev, pbonzini@redhat.com, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, shuah@kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, isaku.yamahata@intel.com, xmarcalx@amazon.co.uk, kalyazin@amazon.co.uk, jackabt@amazon.com Subject: Re: [PATCH v3 1/3] KVM: arm64: Add pre_fault_memory implementation In-Reply-To: <86see3r7e9.wl-maz@kernel.org> References: <20251119154910.97716-1-jackabt.amazon@gmail.com> <20251119154910.97716-2-jackabt.amazon@gmail.com> <86see3r7e9.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: jackabt.amazon@gmail.com, oliver.upton@linux.dev, pbonzini@redhat.com, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, shuah@kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, isaku.yamahata@intel.com, xmarcalx@amazon.co.uk, kalyazin@amazon.co.uk, jackabt@amazon.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, 24 Nov 2025 11:34:38 +0000, Marc Zyngier wrote: > > On Wed, 19 Nov 2025 15:49:08 +0000, > Jack Thomson wrote: > > [...] > > + fault_info->hpfar_el2 = HPFAR_EL2_NS | > > + FIELD_PREP(HPFAR_EL2_FIPA, ipa >> 12); > > + > > + if (kvm_slot_has_gmem(memslot)) { > > + ret = gmem_abort(vcpu, ipa, NULL, memslot, false); > > + } else { > > + hva = gfn_to_hva_memslot_prot(memslot, gfn, NULL); > > + if (kvm_is_error_hva(hva)) { > > + ret = -EFAULT; > > + goto out; > > + } > > + ret = user_mem_abort(vcpu, ipa, NULL, memslot, &page_size, hva, > > + false); > > + } And thinking of it a bit more, this is completely broken. What happens if the vcpu is in a nested context? You just populate random pages in an IPA space that is not relevant at all, corrupting the guest state. You must correctly handle the context the vcpu is in, instead of assuming that this is the canonical context. This means going via the *guest's* S2 translation, just like handle_mem_abort() does. M. -- Without deviation from the norm, progress is not possible.