Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2540487lqp; Mon, 25 Mar 2024 01:46:56 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUejPWXGrp84CpLuJzY09ngisnWZ4x/yeW8kNKdIzJPx3aiOiGHlCX69uqMim/Hf8ax6Xcm2c/7/GE0Wc1bVsFdMZfY/1+iAYjqHmaBuQ== X-Google-Smtp-Source: AGHT+IHtmCLII1HzCqT5g2akSZGcncfa5Yd/bMLmPg81r6+ESYToLZuTyyHrFJ8p3JBkQk+nc/rH X-Received: by 2002:a05:6a00:23c5:b0:6ea:afca:f3f2 with SMTP id g5-20020a056a0023c500b006eaafcaf3f2mr1026162pfc.0.1711356416301; Mon, 25 Mar 2024 01:46:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711356416; cv=pass; d=google.com; s=arc-20160816; b=va9ZrMdT50f4PwzSsZQ0t9Jqp1gpp/SGTepsYqD0NXSG7IO/ej44wvj19twAgnGDo5 YjKbxcjixebUust42XaC/f5/BvwBE9sUzLik14dUvJsxsfN3PkJsMxKlMdW5FFYy0mWE Fdn6ZQ9G2Ju5cWqcorHM/m46mWiBcYQsMpTsoxghX49a9cIX0mIralXactaivTgfz1py BxcynCshFjQN51kKyFul5MyCu7b72RKkLR1ituM7CC/+8ZHSnltQvEwJNU18dUM/0/WG +pdbUhfGhYV5bZ/JjaJnElboABlB4w3BLJ2S815vdfijtmgQ/SB6D0v/hfzT7zh16U26 umEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=WOP6YCdHsl2ZX4hu3vo06LNARH299CrxGeXU1350Bhs=; fh=ig7dwuFvsxTtxoZearlLnzILMMeSYI8RQIBx93W9hkY=; b=JWdZY4roTGjWSrYAjCZz8uXw7f/h4CwJqPBw9J2LsU6RVnxWHzlhvMM2pHX79EvLgx jq3Go954p5lFh19CiwgaiYRpmGpeKwL/vkc9AiAkQ0ewbdLgKkUJPcH99MjBB7hn/f++ xYqccZSmJKDzfwyPiiQZ1nDibuWQdw8reysD+zJtiM5qCNIoWyBh6dttA5OML2sd70o0 aNPoHHdwuneneeFWIveLdePf3JfLhb0MX7E3kklyNe75LILIkftyFB6CtWEpXhBb8rUI Q3E4B6T2kfltc8tuGeXIHIQ08HzxXxHLSUSwRb1jq5xXQrglaKVZLRKejzAFQb1KO25R BFzQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WfLAqZdf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115499-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115499-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id u17-20020a62ed11000000b006e558a20e88si4690088pfh.208.2024.03.25.01.46.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 01:46:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115499-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WfLAqZdf; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115499-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115499-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 76222B35BE1 for ; Mon, 25 Mar 2024 07:45:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 632C71EAD2D; Mon, 25 Mar 2024 02:41:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WfLAqZdf" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 14A051EBD3D; Sun, 24 Mar 2024 22:55:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320934; cv=none; b=Cmf0uU6MBcrv6LSXgCvl4eddmW+iv+u9M+wDOa4gTE5Mn8xYSsHDUhezaJzJqVI/aPASTOwdfqbx00OTUJwQX9EOn9Wy9YFB/iUHV6GcUJUOpLKmoF/XhYk+cBxvjRbOINiWqFZeE0ZNRHSu9VO1W8xCaQRdYXAyQUUtm+linfU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320934; c=relaxed/simple; bh=tkufBR9raGvxU8c3aH3i6ldwN0hrm/x4DjtThUr85q8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qhLrQADmAwy4fEMUZKxXzFpMOa10oeg7f0LwYt0i2v8Wq9bbbrEBubgeprB2dF0odQlmCTUbMN1EEuJqqhd9RJLpIfQOhnXF6rhApJ3nDeBo6aaA5xLeK234ss70ZPmVfUH8nne7wGSOJm9vHzR2hgYzjyzCyWBcMND1H9euCD0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WfLAqZdf; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C953C43394; Sun, 24 Mar 2024 22:55:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320933; bh=tkufBR9raGvxU8c3aH3i6ldwN0hrm/x4DjtThUr85q8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WfLAqZdflfgXAQFazefS4bR0E4p4TJdi8M1EAwKqHRNfrGwYjUMqH+59KV48vBUpI /MVku3SDO6RDadxzekplxgRFC1TulDikhsD6GsB/YOb9ladKo9DzjcoNH26AYKvOOW 4XeKZhZ3T3bfTdlRzMS9yjYsembXZbVToiFB3eYQvBQJ/mffszTbBzBf3FO5UrjcTP QWpqImwGxlTTlHBwgGEE5bKCfI42XvEp3EMmasiQov3w+tJ3WO6XPy0uy/w1q7BRTL Z++Ce/cYQIJ9KQA5eXDyU8hdwqxCMZQYYK3dZruoB7z4g9RA+W3inyDSPoCns5o/x6 j58/IHGTV5S7A== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Mario Limonciello , Tim Van Patten , Herbert Xu , Sasha Levin Subject: [PATCH 6.7 497/713] crypto: ccp - Avoid discarding errors in psp_send_platform_access_msg() Date: Sun, 24 Mar 2024 18:43:43 -0400 Message-ID: <20240324224720.1345309-498-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Mario Limonciello [ Upstream commit 0e8fca2f12ceb77c3a6b6f210135031f264aa612 ] Errors can potentially occur in the "processing" of PSP commands or commands can be processed successfully but still return an error code in the header. This second case was being discarded because PSP communication worked but the command returned an error code in the payload header. Capture both cases and return them to the caller as -EIO for the caller to investigate. The caller can detect the latter by looking at `req->header->status`. Reported-and-tested-by: Tim Van Patten Fixes: 7ccc4f4e2e50 ("crypto: ccp - Add support for an interface for platform features") Signed-off-by: Mario Limonciello Signed-off-by: Herbert Xu Signed-off-by: Sasha Levin --- drivers/crypto/ccp/platform-access.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/ccp/platform-access.c b/drivers/crypto/ccp/platform-access.c index 94367bc49e35b..1b8ed33897332 100644 --- a/drivers/crypto/ccp/platform-access.c +++ b/drivers/crypto/ccp/platform-access.c @@ -118,9 +118,16 @@ int psp_send_platform_access_msg(enum psp_platform_access_msg msg, goto unlock; } - /* Store the status in request header for caller to investigate */ + /* + * Read status from PSP. If status is non-zero, it indicates an error + * occurred during "processing" of the command. + * If status is zero, it indicates the command was "processed" + * successfully, but the result of the command is in the payload. + * Return both cases to the caller as -EIO to investigate. + */ cmd_reg = ioread32(cmd); - req->header.status = FIELD_GET(PSP_CMDRESP_STS, cmd_reg); + if (FIELD_GET(PSP_CMDRESP_STS, cmd_reg)) + req->header.status = FIELD_GET(PSP_CMDRESP_STS, cmd_reg); if (req->header.status) { ret = -EIO; goto unlock; -- 2.43.0