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 09AE5C3ABB6 for ; Tue, 6 May 2025 02:06:29 +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-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=RYtpRnCyRCBK5z7WGHNTcflIZFcipH28d2r50AikFt4=; b=Jv1BS+uNrUlfmg7x7X3egYChmx Y4WB7uRjaxPhuRXa6wug1FPaDDrT+CTokJi0qvW4qG5TBtruUMIRpWhCMWcad1VC6OODrIzgX5oSa KLLb6EY+OFJm5WjP2C0v7U8ZeqfWcG9IvMvD53GBbIzO5uyvDv0DqvcEt0nSQzdGc9sZpXIhS9wMB Oau6RIkniSml/eymuVVNimO1qigg3bHJQzMtK7Dwr1XFRoH2e3T+ajPCx49UfrTW7SslHvzV2tJAt i+23L+Ttp6mJfzknoJzU7Y0vuELOF4YNWpi+nyb+gC8ezP7hvvq6H2XPnoWLb8ErUHoTK4A2vd91C w/Ytq95w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uC7hK-00000009fNh-35vy; Tue, 06 May 2025 02:06:18 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uC4eK-00000008sg3-2n6E for linux-arm-kernel@lists.infradead.org; Mon, 05 May 2025 22:51:01 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id D60245C59C4; Mon, 5 May 2025 22:48:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0765FC4CEE4; Mon, 5 May 2025 22:50:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746485459; bh=a23ET7tJlipfo1fkdcAPkVJGv+PyEDiFu7KM+QNHX1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U5zODUkVZ8EdTRWT330UENAMSBKvwRULi44jn2P1xJBreW2x83qUOO2eing6iBquE jldn2wYSEbDgh6UJmnwHrH7B0F/TBfOsN/NxynS/fOF7QreV1z/UC/ItKMWVmwKMmA GWUOydUuXlbeJKNwlLiRqVcp1ElhL/nqhxKCnGlkePM71DCOX9iE9yeKs/9ZID/TMW jgfUbGRGeBWQI7jVdC9yG5dozreVkWewT4pLJpmnqiadlKBg/rwjJyeDqvnk1M13c6 6q7Hx9dyAJ+WQLzT9cWRkuxclG5zVWhJufpDxJ1xs9yJqQpXIAhKxcuNqxYF5tDFLc 3PMUUpDWVB3VQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sudeep Holla , Viresh Kumar , Sasha Levin , linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 6.12 323/486] firmware: arm_ffa: Reject higher major version as incompatible Date: Mon, 5 May 2025 18:36:39 -0400 Message-Id: <20250505223922.2682012-323-sashal@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250505223922.2682012-1-sashal@kernel.org> References: <20250505223922.2682012-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.12.26 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250505_155100_763658_250B2E29 X-CRM114-Status: GOOD ( 11.05 ) 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 From: Sudeep Holla [ Upstream commit efff6a7f16b34fd902f342b58bd8bafc2d6f2fd1 ] When the firmware compatibility was handled previously in the commit 8e3f9da608f1 ("firmware: arm_ffa: Handle compatibility with different firmware versions"), we only addressed firmware versions that have higher minor versions compared to the driver version which is should be considered compatible unless the firmware returns NOT_SUPPORTED. However, if the firmware reports higher major version than the driver supported, we need to reject it. If the firmware can work in a compatible mode with the driver requested version, it must return the same major version as requested. Tested-by: Viresh Kumar Message-Id: <20250217-ffa_updates-v3-12-bd1d9de615e7@arm.com> Signed-off-by: Sudeep Holla Signed-off-by: Sasha Levin --- drivers/firmware/arm_ffa/driver.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c index 2c2ec3c35f156..e8efa6cfd58cd 100644 --- a/drivers/firmware/arm_ffa/driver.c +++ b/drivers/firmware/arm_ffa/driver.c @@ -150,6 +150,14 @@ static int ffa_version_check(u32 *version) return -EOPNOTSUPP; } + if (FFA_MAJOR_VERSION(ver.a0) > FFA_MAJOR_VERSION(FFA_DRIVER_VERSION)) { + pr_err("Incompatible v%d.%d! Latest supported v%d.%d\n", + FFA_MAJOR_VERSION(ver.a0), FFA_MINOR_VERSION(ver.a0), + FFA_MAJOR_VERSION(FFA_DRIVER_VERSION), + FFA_MINOR_VERSION(FFA_DRIVER_VERSION)); + return -EINVAL; + } + if (ver.a0 < FFA_MIN_VERSION) { pr_err("Incompatible v%d.%d! Earliest supported v%d.%d\n", FFA_MAJOR_VERSION(ver.a0), FFA_MINOR_VERSION(ver.a0), -- 2.39.5