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 B1E9DC44508 for ; Tue, 14 Jul 2026 12:59:31 +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:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wo1cSCYChzZ+SeD4Rr4ePKZmOVyTbiqYMm+hrcWkjS0=; b=q80Km/7ugSTHttwVozBvGQ9lhR pG7Zd/zaeOFC8Jtrt7yf8+9JYOWA36F5x4JKCjKSXEcF2s8UmWBH5hxM9YTkoRSf6hSrmHSk8pp75 BlgMFN+m2V8oXqONTDOQuLQxYiQrwjZjVGGNVOcbsVz9DEW2Rlzfnl8SD1WhDz9hvy2vW0marZ7JZ sIY8EYNjcqgGfivTqrHTe60ABnSmri9aPfb5CY1F+HEAkQDQybAJc0u+cjCC5SxT7fd9T31G04kI4 o7/c4RbHGnxYkNIIC7dgRK/EwqZvLtPaRR917W+sME9n/CMMxEvbc5oii+TkXytmBetaKiic4xM9F HdY97qEA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjcjN-0000000C3Ml-23gm; Tue, 14 Jul 2026 12:59:25 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjcip-0000000C2gN-0qOg for linux-arm-kernel@lists.infradead.org; Tue, 14 Jul 2026 12:58:51 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 96B3F6111A; Tue, 14 Jul 2026 12:58:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B935D1F0155D; Tue, 14 Jul 2026 12:58:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784033930; bh=wo1cSCYChzZ+SeD4Rr4ePKZmOVyTbiqYMm+hrcWkjS0=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=oO594GSptzEGVod0PfZDkZ0B3Pej48asdckgAWnWyMzWnIKnU7HQ85lUQLJH9kHFg ClFtThjrE2MCeKq6a+rzW3Xl8K2mm+/l/yEOKZVVPFQCgTMSXFNHmbSpltv0C4mJjc c32E/4HgmL+7vF4ZuOKUtuh1qj5PJd7COP5UulwxJ377bWwUWA4PbyjIzRzFHq2h45 hq103iSdiguw0eqn2euOcrYyHEgdD+ZHY9Ud5cDeUf5Uta0h5BxDIqU9fX6AWpr87F DA7nTn+v4Zfmg0TJHzpRnvVEq37YUCfvPY3oc/U33m8qF16T1ylzWFQZmttlfWgWmU lUxTEDF9J5BvA== From: Sudeep Holla Date: Tue, 14 Jul 2026 13:56:32 +0100 Subject: [PATCH v6 13/16] firmware: arm_scmi: Unwind TX receiver mailbox setup failure MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260714-scmi_core_fixes-v6-13-3afe499d46e3@kernel.org> References: <20260714-scmi_core_fixes-v6-0-3afe499d46e3@kernel.org> In-Reply-To: <20260714-scmi_core_fixes-v6-0-3afe499d46e3@kernel.org> To: arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Cristian Marussi X-Mailer: b4 0.15.2 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 mailbox_chan_setup() can request an additional unidirectional TX receiver channel after successfully acquiring the primary channel. If that second request fails, the function returns immediately and leaves the primary channel allocated. Unwind the primary mailbox channel before returning the error so probe deferral or other setup failures do not leave the channel busy for later probe attempts. Fixes: 9f68ff79ec2c ("firmware: arm_scmi: Add support for unidirectional mailbox channels") Reported-by: Sashiko Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/transports/mailbox.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/arm_scmi/transports/mailbox.c b/drivers/firmware/arm_scmi/transports/mailbox.c index b6459fbb8151..37e3eab529ea 100644 --- a/drivers/firmware/arm_scmi/transports/mailbox.c +++ b/drivers/firmware/arm_scmi/transports/mailbox.c @@ -230,9 +230,10 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev, smbox->chan_receiver = mbox_request_channel(cl, a2p_rx_chan); if (IS_ERR(smbox->chan_receiver)) { ret = PTR_ERR(smbox->chan_receiver); + smbox->chan_receiver = NULL; if (ret != -EPROBE_DEFER) dev_err(cdev, "failed to request SCMI Tx Receiver mailbox\n"); - return ret; + goto err_free_chan; } } @@ -248,6 +249,8 @@ static int mailbox_chan_setup(struct scmi_chan_info *cinfo, struct device *dev, return 0; +err_free_chan: + mbox_free_channel(smbox->chan); err_clear_cinfo: cinfo->transport_info = NULL; smbox->cinfo = NULL; -- 2.43.0