From nobody Fri Dec 19 16:01:00 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F5B0ECAAA1 for ; Mon, 24 Oct 2022 14:13:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233859AbiJXONT (ORCPT ); Mon, 24 Oct 2022 10:13:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237168AbiJXOKT (ORCPT ); Mon, 24 Oct 2022 10:10:19 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4AF3C8234; Mon, 24 Oct 2022 05:52:17 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 5D34EB8125C; Mon, 24 Oct 2022 12:31:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B305EC433D6; Mon, 24 Oct 2022 12:31:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1666614707; bh=Af8giS2+ZfpdZxS5MHM8Plt2o38OtS7fPeNrZbHoCb4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=z+spuVQCWbSyFqKhLvWyHTvaQHzSG+Vp+lGcdRfYujMIuig+IfEWCDlcvlN6qF5LK MiPilTmgtZycf7R/4DhIcQPcNNhWgEIfxli0i5JlgU8K/tHxVeZHsWyvB0VsLsHmjE s0/SC48i+itijmqAD+I/3CQwfAZgXbBZiSGUwUU8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Richard Fitzgerald , Pierre-Louis Bossart , Vinod Koul , Sasha Levin Subject: [PATCH 5.10 364/390] soundwire: cadence: Dont overwrite msg->buf during write commands Date: Mon, 24 Oct 2022 13:32:41 +0200 Message-Id: <20221024113038.497535574@linuxfoundation.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221024113022.510008560@linuxfoundation.org> References: <20221024113022.510008560@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Richard Fitzgerald [ Upstream commit ba05b39d265bdd16913f7684600d9d41e2796745 ] The buf passed in struct sdw_msg must only be written for a READ, in that case the RDATA part of the response is the data value of the register. For a write command there is no RDATA, and buf should be assumed to be const and unmodifable. The original caller should not expect its data buffer to be corrupted by an sdw_nwrite(). Signed-off-by: Richard Fitzgerald Reviewed-by: Pierre-Louis Bossart Link: https://lore.kernel.org/r/20220916103505.1562210-1-rf@opensource.cirr= us.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/soundwire/cadence_master.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence= _master.c index c6d421a4b91b..a3247692ddc0 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -501,9 +501,12 @@ cdns_fill_msg_resp(struct sdw_cdns *cdns, return SDW_CMD_IGNORED; } =20 - /* fill response */ - for (i =3D 0; i < count; i++) - msg->buf[i + offset] =3D FIELD_GET(CDNS_MCP_RESP_RDATA, cdns->response_b= uf[i]); + if (msg->flags =3D=3D SDW_MSG_FLAG_READ) { + /* fill response */ + for (i =3D 0; i < count; i++) + msg->buf[i + offset] =3D FIELD_GET(CDNS_MCP_RESP_RDATA, + cdns->response_buf[i]); + } =20 return SDW_CMD_OK; } --=20 2.35.1