From nobody Fri Oct 17 10:31:31 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 CC08AC4332F for ; Wed, 19 Oct 2022 12:33:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233148AbiJSMdE (ORCPT ); Wed, 19 Oct 2022 08:33:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231489AbiJSMcm (ORCPT ); Wed, 19 Oct 2022 08:32:42 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D3181D0D74; Wed, 19 Oct 2022 05:11:11 -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 dfw.source.kernel.org (Postfix) with ESMTPS id 049E8617E1; Wed, 19 Oct 2022 09:14:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C5F1C433C1; Wed, 19 Oct 2022 09:14:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1666170853; bh=VZBw5DsUX6oh/4FnMOXMdw0076F1lklCffGNz1UYs/M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Nt2wB8CoOeHpSrqC4ecYExZSI4ljq9k/oT3ron7CVqTRPgOkaq3+rBy4dSasHt/oK 8cJ/f0j1x/LLoKu8DMYSLdf2DOpcoAVkbFSPRmo9FcLM6K2/gDIpWkvT1pMgQbTr3q CZeQUpwMtVTkYDAAK1Sxl7e35ttNpAU9+ZLweAXU= 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 6.0 810/862] soundwire: cadence: Dont overwrite msg->buf during write commands Date: Wed, 19 Oct 2022 10:34:57 +0200 Message-Id: <20221019083325.708476346@linuxfoundation.org> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20221019083249.951566199@linuxfoundation.org> References: <20221019083249.951566199@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 4fbb19557f5e..42c5fae80efb 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -544,9 +544,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