Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2814178pxj; Sun, 6 Jun 2021 15:16:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxMFVWjcXIExlvB+Z9y3PZ5Q+ABp/tNgjhp7A8/o9oiMlGxQaj3sxQbKTc9n+Y/P4ep67lG X-Received: by 2002:a17:906:c1d2:: with SMTP id bw18mr14964579ejb.123.1623017784239; Sun, 06 Jun 2021 15:16:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623017784; cv=none; d=google.com; s=arc-20160816; b=PSD+P8USjaEgcJWc1OmWLhyzlP0HhQJGSohBzr+TuMaMNlXlDU6y+tRs8Zsc1iI12F w9YpmKuUZa1r0K39gzoS0BAIHDr2zarGKrTA5L0+MsVDQNKMIyaHTs+DL+abV9f5eIf+ MJPAGBGhCwCOObp4OEnr1wHbOAjlPiyx9AYU3UadJjOigWSLagnuQa7iY7t8XzsCsHys xJ3e7zKBAUcgxabtktrcTvVAr1apNvtibM7p13hOa9XDj2FyiY5zVvJjjbvupZz/984c FyP+/1sNumTvPJxVXwXgr7F6iaaw9hJZIZCP3/biyOLkdvhx9z4pyXDd5eStwo8b4ZD9 6xxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=yNTGTmVQkkNUJOepLtmpfFGu3tkkycaMd2cUnmEV1WQ=; b=WT0nfWkGhdy0c9XKaBJ4qEXavzcsMK7UXKW0kKwNTcIXlOWQDCIf5sJOMF/BJ7DGDE 6F86ZklpLCKOLVUPEhP3MypP60nU+rMLNz2hFMv/xExHL/ZHaS3E4Nd/8lfDKUVftumE +xH5CcCb+oI/EeQF0Js1nmJgg8fkMLlOiy5Uv0vhflZEYgshJKSisENhRvcDlWM2foOu 48cCMA2PaUoCZC2RgXjrWwRE1BdwDfnZCFKivs/erUrPgB4wJBJvzZHAlw7zEdxf71kB Hd9PuVs9eyLdxnjMohBrRjDdDjiHwRn5R6LDQlvoOth5fuk7AHrKzE127xuEtMLk7APB 1gUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o3si10257663ejb.436.2021.06.06.15.15.40; Sun, 06 Jun 2021 15:16:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230435AbhFFWPA (ORCPT + 99 others); Sun, 6 Jun 2021 18:15:00 -0400 Received: from foss.arm.com ([217.140.110.172]:46296 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230428AbhFFWO7 (ORCPT ); Sun, 6 Jun 2021 18:14:59 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 98A3F11D4; Sun, 6 Jun 2021 15:13:09 -0700 (PDT) Received: from e120937-lin.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3CF613F719; Sun, 6 Jun 2021 15:13:07 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com, cristian.marussi@arm.com Subject: [RFC PATCH 01/10] firmware: arm_scmi: Reset properly xfer SCMI status Date: Sun, 6 Jun 2021 23:12:23 +0100 Message-Id: <20210606221232.33768-2-cristian.marussi@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210606221232.33768-1-cristian.marussi@arm.com> References: <20210606221232.33768-1-cristian.marussi@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When an SCMI command transfer fails due to some protocol issue an SCMI error code is reported inside the SCMI message payload itself and it is then retrieved and transcribed by the specific transport layer into the xfer.hdr.status field by transport specific .fetch_response(). The core SCMI transport layer never explicitly reset xfer.hdr.status, so when an xfer is reused, if a transport misbehaved in handling such status field, we risk to see an invalid ghost error code. Reset xfer.hdr.status to SCMI_SUCCESS right before each transfer is started. Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index ca71568c5c41..bee33f9c2032 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -447,6 +447,7 @@ static int do_xfer(const struct scmi_protocol_handle *ph, xfer->hdr.protocol_id, xfer->hdr.seq, xfer->hdr.poll_completion); + xfer->hdr.status = SCMI_SUCCESS; ret = info->desc->ops->send_message(cinfo, xfer); if (ret < 0) { dev_dbg(dev, "Failed to send message %d\n", ret); -- 2.17.1