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 168AFC83F34 for ; Sat, 19 Jul 2025 02:17:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To: References:Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version: Subject:Date:From:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=D18ouy4AsTB4IUhvK2F1WIxaRZzVY4gKkYirh/cKJ7w=; b=g28ep+d5yVxU/CCjVFZ5OgDbvh u0bX+QuE6gTQ53eeFTM/O8fDXqfEYXBuXJRTEi6ewOoKk36sPqAiATwQNfJ8tyw99EUKhhjDwFzIK HcY8GvM8cQteg45n5HeZ8KofYjR+YNrbOiV+YaKY4/1frsEjXGlXFpu2fWvMSI6mDWvONk2vruCZB +sjT9tQG4axymG50Xky+DGx9rKZceWane07KlNNppn0zKCRUgKBlS/SNWgovGap3IBxECaTA4JF6I aksqqSrFzhWoY+Cjyy6piX2621h1r9cMiqVkVE2BWwUYHahM0ELz9HFC8b5HbmdJ/cgwwu3LUag3q FYRO4cYA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ucx8A-0000000Djll-3L6d; Sat, 19 Jul 2025 02:16:54 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ucx3L-0000000DjJR-1YZu for linux-arm-kernel@lists.infradead.org; Sat, 19 Jul 2025 02:11:55 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 50846601BB; Sat, 19 Jul 2025 02:11:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPS id A4129C4CEF4; Sat, 19 Jul 2025 02:11:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752891113; bh=coAKO9TLhK8MTIgf77yLemsOevi3hPcTUAqXS91Y2b4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=JNH9a9KkBf83Hstnxpc0qHWAdgczsuEPME2MsMYzxFGC62UPfbtjrJ8AwBp0J8r3e GWbMu03xTS/rei/BYcLozWhyXGJ8QlPGVQQ9tvyDbMKP25xcPlwV7LWZeg29GK/+Dv YuiUy4nc+5s5TdiGTiqJOO9PIGgBy+vz1yKLSM20j0gY1Qqrx50RMYCU4ZMT0B1eqk nZ1k8gRWikdOwLClk6spvvS9DmwINwC2fmiSh3N0NeSa44elvvwCaej2rPylktugCf z0nydZRuavFm6XvQTyu/Fgcn8Rl5MuKmDVSu5ITARl1a+pduqz7IAHanY1StVfD+j/ yXFBMHJ12NQLw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 953E3C83F34; Sat, 19 Jul 2025 02:11:53 +0000 (UTC) From: Per Larsen via B4 Relay Date: Sat, 19 Jul 2025 02:11:23 +0000 Subject: [PATCH v8 1/7] KVM: arm64: Correct return value on host version downgrade attempt MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250719-virtio-msg-ffa-v8-1-03e8e8dbe856@google.com> References: <20250719-virtio-msg-ffa-v8-0-03e8e8dbe856@google.com> In-Reply-To: <20250719-virtio-msg-ffa-v8-0-03e8e8dbe856@google.com> To: Marc Zyngier , Oliver Upton , Joey Gouly , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , Sudeep Holla Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, ahomescu@google.com, armellel@google.com, arve@android.com, ayrton@google.com, qperret@google.com, sebastianene@google.com, qwandor@google.com, Per Larsen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752891112; l=1399; i=perlarsen@google.com; s=20250508; h=from:subject:message-id; bh=Dl9KrxrUP4K0W3dgejUfrC3aK93wdcqeauIVLeuo9f0=; b=lJirE4j7wkWB4ZcW5+qaK6CCOsLqrm6DoTu3uQ92cxCsDWf/6HUXasK7WYG+ZO4eEYzhDYFTo bHmnGo6VxdvDx0nd0Fg8/UgHKuIxWg4pBX33eAN6Bx47iuctxSU6aZ5 X-Developer-Key: i=perlarsen@google.com; a=ed25519; pk=jjc/Ta4VmrLRmMoahP6d1mBcKzvWU+nsmdtYe2oS2kQ= X-Endpoint-Received: by B4 Relay for perlarsen@google.com/20250508 with auth_id=402 X-Original-From: Per Larsen 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: , Reply-To: perlarsen@google.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Per Larsen Once the hypervisor negotiates the FF-A version with the host, it should remain locked-in. However, it is possible to load FF-A as a module first supporting version 1.1 and then 1.0. Without this patch, the FF-A 1.0 driver will use 1.0 data structures to make calls which the hypervisor will incorrectly interpret as 1.1 data structures. With this patch, negotiation will fail. This patch does not change existing functionality in the case where a FF-A 1.2 driver is loaded after a 1.1 driver; the 1.2 driver will need to use 1.1 in order to proceed. Acked-by: Will Deacon Signed-off-by: Per Larsen --- arch/arm64/kvm/hyp/nvhe/ffa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c index 3369dd0c4009f84ad3cf9481c747bdc57a162370..2c199d40811efb5bfae199c4a67d8ae3d9307357 100644 --- a/arch/arm64/kvm/hyp/nvhe/ffa.c +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c @@ -712,7 +712,10 @@ static void do_ffa_version(struct arm_smccc_res *res, hyp_spin_lock(&version_lock); if (has_version_negotiated) { - res->a0 = hyp_ffa_version; + if (FFA_MINOR_VERSION(ffa_req_version) < FFA_MINOR_VERSION(hyp_ffa_version)) + res->a0 = FFA_RET_NOT_SUPPORTED; + else + res->a0 = hyp_ffa_version; goto unlock; } -- 2.50.0.727.gbf7dc18ff4-goog