Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3476602pxj; Mon, 7 Jun 2021 11:34:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz4Gsn8Hl423mF/lSEBlmeqdDdvhVv3bw5E1ZYQXL9WBhAeZoGjSYVYj1dJSEPLVFQ8beJQ X-Received: by 2002:a17:906:24d8:: with SMTP id f24mr19968833ejb.188.1623090858784; Mon, 07 Jun 2021 11:34:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623090858; cv=none; d=google.com; s=arc-20160816; b=LvQsUAEr8YXNLT2fChfanKFhs/w3vThhepE2TZbyo7onqFM/9WYiNxxCDlEPOwKTtQ kByq/tQfP+p+CwtT2D2PKcd0cCLM340FAYoHnKF9iDulN7VOJxnYLzgr8eiUGMmqj3d5 NljD8/nHSxLVQs/rM8tn8PPWl1E1sEb1D7LKWNWeedtN4Z1s21SbZRj2EsPY9vfqj8Y9 Z/2qVYIvhDDNyVRF3i9ioLxLUTJeiKLC79fVI3+GHXVQFr01wovF5glqKfimitGAGs8s AkEztsLTJ+9/Pecie0yutgiVfa8decS2UxatsQ24Qkt2Dos1v3JJrxodd3yh/ymzB5/q RVig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=cIh5X44MHB20gdcILt90pCowuc0/TbNQMkDk9uyBRco=; b=bPX7tSghiiPc+Fw9W7v28l4AMy07HW1ofVkyuPy2Zvh8OyPEhsDK3SiRvj02PYJbXI mv1dNQEfjrX+IxG+oz2h9dfamRilmOToASULp7O4185RhG5d0DP19ddpSGlrudPjPk4P H6FM7Vfhk2BptNdO8AXgcw7e7ip1AiveCdafRIY4FUtvWkcHRVjfSjNd3sp7uIm98HP3 HDdfJTSaQ4v2IauNrBz9p7TQdrON6Sj917+t+aaSYLJBaidDj4ihJC4lwkLbpijufxPH qEXnNHC1aV4QOAhBmtYNVJMOsEeDrjEdRK+a0DJVIVw64hReV2CJ3rOuNE/6FL2peSI9 Jdbg== 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 b8si12570241ejl.618.2021.06.07.11.33.56; Mon, 07 Jun 2021 11:34:18 -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 S230311AbhFGScr (ORCPT + 99 others); Mon, 7 Jun 2021 14:32:47 -0400 Received: from foss.arm.com ([217.140.110.172]:40002 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230253AbhFGScq (ORCPT ); Mon, 7 Jun 2021 14:32:46 -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 3F8B812FC; Mon, 7 Jun 2021 11:30:55 -0700 (PDT) Received: from bogus (unknown [10.57.73.170]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 954613F73D; Mon, 7 Jun 2021 11:30:53 -0700 (PDT) Date: Mon, 7 Jun 2021 19:30:30 +0100 From: Sudeep Holla To: Cristian Marussi Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com Subject: Re: [RFC PATCH 02/10] firmware: arm_scmi: Add missing xfer reinit_completion Message-ID: <20210607182924.yauvg4zli6gmulev@bogus> References: <20210606221232.33768-1-cristian.marussi@arm.com> <20210606221232.33768-3-cristian.marussi@arm.com> <20210607174142.jdirvbasvgl7q4oj@bogus> <20210607180434.GC40811@e120937-lin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210607180434.GC40811@e120937-lin> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 07, 2021 at 07:04:34PM +0100, Cristian Marussi wrote: > Hi, > > On Mon, Jun 07, 2021 at 06:42:57PM +0100, Sudeep Holla wrote: > > On Sun, Jun 06, 2021 at 11:12:24PM +0100, Cristian Marussi wrote: > > > Reusing timed out xfers in a loop can lead to issue if completion was not > > > properly reinitialized. > > > > > > 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 bee33f9c2032..759ae4a23e74 100644 > > > --- a/drivers/firmware/arm_scmi/driver.c > > > +++ b/drivers/firmware/arm_scmi/driver.c > > > @@ -448,6 +448,7 @@ static int do_xfer(const struct scmi_protocol_handle *ph, > > > xfer->hdr.poll_completion); > > > > > > xfer->hdr.status = SCMI_SUCCESS; > > > + reinit_completion(&xfer->done); > > > > > > > What could happen after xfer_get_init->scmi_xfer_get->reinit_completion > > that it needs to be re-initialised again. I don't see any reason for this ? > > If there are, please state them explicitly. If this is needed, I would drop > > the one in scmi_xfer_get(). > > > > The reason, like I explained in the other reply in hdr.status, is the > possibility of do_xfer loops and being more defensive. > Understood. > I agree that if what I blabbed in the other email is acceptable, I could > drop the reinit_completion in xfer_get() and just use it before > send_message(). > I wonder if it is possible to reset only on error if possible and not expensive of-course ? -- Regards, Sudeep