From nobody Sun Feb 8 19:56:21 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FA6D1A00E7 for ; Fri, 7 Feb 2025 20:11:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738959111; cv=none; b=Z2fO1IGw45MabyInS8Kl9bmC7QIJYmiHyi3roltbNjlJuV3MgYpDFUTWiq72Y8FTtfTtCu34yZz5hHoXkHq4jKfptD2YAyyPK9ne/U02yhqWPYXsrADlSqyiUfF5t8Jn8djBbEJxEoe+9HF1MgxV7Y69/YABJV8ViUwzwGt3Iqo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738959111; c=relaxed/simple; bh=o0JjXXcxDBv5TFdiXfnwXkrMd28amcy8OmNIPYYWh9o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=jHKyhdbbHq8yl+JVs9PRY5F9/CGq4D5Dr8l+0PhIU6DR6dquaf7pL4vnoy99ap7SmwTdVPoFTykFnfZztJW9pVmQ+eAtwh4km3y7ZAtOKrTHPfNxyqIOW3fVxUpQCJK9d4mf+Ghmd/cQbuX2Ck7WX7QLJsrNWEb90RHokpL0lhI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=PL5mlcE0; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="PL5mlcE0" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 517FNZ7o008015 for ; Fri, 7 Feb 2025 20:11:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=kDMiMudtV4tgXrnAq0wBH3 feb/UwjZ0g++lmYLeshWU=; b=PL5mlcE0EoqntLZxTAHB3tdKWGaTln3Gos4ikq ivTq4o8QpTXZHwSma8QkcNSqOG9SgYe0/UtkznOE37N8h96p5H750cnBmKZ18i4k AXv/4OxEtUliSdKKdVyqkjApasPpZi6uAXetQuliUU9T47m+wsKNe0Y0XWAN/6KW P9D+KvHpe556cnjYTAE438sU189CdnhDAuRatemEDuQrie0V9VeTX/y59/HXLluw 4V/lHdEMQPpTnU2IsE/Q5B5HvREJOGvop7qWqksacGI2rLa1qVqmmjzi6eYIDmup 68RraPLethyUy3Oz83DbSvTscHsXhE9g9+yATRUdP0O30iVQ== Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 44nmsbgpv0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 07 Feb 2025 20:11:47 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-5fc057bd4a9so1737030eaf.0 for ; Fri, 07 Feb 2025 12:11:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738959107; x=1739563907; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kDMiMudtV4tgXrnAq0wBH3feb/UwjZ0g++lmYLeshWU=; b=mtMKqXS0xuLTsVZ4lr0QHDuPwq9dRQYlafRlcbcglpVOitsUguFM9cKqtnU2977CmA HPBfDEt2Sy1K+flTeeJzrBD6mf2K1NItYXr55GKMKXYxFSAs5Z4JlPJrihkS/rsHqJkM Xm7PFaAHYcCYexKrwqji+OZKOoEYB0fXVUpq7M2T8cCJf48VeTo9nV5ukQKKHib3XNac KBZyLk1Zwl6o+bV2GbyptGUxzyMi8pz6HMv7zAVeeqybtKTRG0ph5vdQUEN5hqqB3aSY 4qxh1RlmDGgo6u6SNRKdgUiL+H2IlJC+cJDIquPjZL4qQt0qKl/qjXyvle6/0m52jOzR ajRA== X-Forwarded-Encrypted: i=1; AJvYcCW1xNfcGQP2SmglV7cW60Y374FhShdTc49fnKQeUMP0heQRV6rJnmS8DdU6Vx8OB185jzUKlW89eD+ln9c=@vger.kernel.org X-Gm-Message-State: AOJu0YyHzcX50zgyMtuuFIvF5iifwBhizU8XkwHLq/CeKFM7NBXHcHZx fkhxvICsTl7kqReGxr+crqaUAyVU38chrsORBJ7FWPBK+y3XCs8rTDkJ9+iH3i/WmKv58HmUJ0w Al26DJs6cWEsl4MRDkMn63SMZ9qesmS/rMsOAl0v/hUHhhR+XvN8eLMFOe6XsUHrLeU7dqII= X-Gm-Gg: ASbGnctg9s75Hzqhhd4FSVcAEiUvbd1tbXaPGThcmpiPpddrQq805SJCUhe3y2lyMn/ Qq6Ev5ychHfzkXLUm8qiLTPBLUj43tPKPBfjwI1+FGBVR44SQV39Qh7H38PcSrGLuxfyj9uKFP7 2MqSWPwNTEt8+TL8rKOy7x5jHyJdup45VjUtwaWc0JrGAXryR04RP//EY36IvIBNPvRYiBehzUN cdhXE6nApIhvwJ4OE/5RG392geX6dPKmN9MpYDmgvseE3d0kmBTucrLBUVpz2guK3saKer3wO8J YsxGnznZIZ4P0vnsIzMOcwvkLdFe8Out7uttaYvdIg2ptw8gqbPRsWwXoFVgpuyOu6uInWH+Gbm 7w+BI X-Received: by 2002:a05:6871:628b:b0:2b7:5726:c931 with SMTP id 586e51a60fabf-2b84015e5bcmr2686342fac.5.1738959107012; Fri, 07 Feb 2025 12:11:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IFYyG3xljRm3I0DrpeKbRB9vGDzRlNGHyM0fmkRS4g7aLScA8naZOYGycC46hNgw83glXa44g== X-Received: by 2002:a05:6871:628b:b0:2b7:5726:c931 with SMTP id 586e51a60fabf-2b84015e5bcmr2686329fac.5.1738959106644; Fri, 07 Feb 2025 12:11:46 -0800 (PST) Received: from [192.168.86.65] (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2b825fe58a9sm1017758fac.20.2025.02.07.12.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Feb 2025 12:11:46 -0800 (PST) From: Bjorn Andersson Date: Fri, 07 Feb 2025 12:17:33 -0800 Subject: [PATCH] dmaengine: qcom: bam_dma: Avoid accessing BAM_REVISION on remote BAM Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250207-bam-read-fix-v1-1-027975cf1a04@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAFxqpmcC/x2MQQqAIBAAvxJ7bkFXQuor0UFzrT1koRCB9Pek4 wzMVCichQtMXYXMtxQ5UwPdd7DuLm2MEhoDKRoUKYveHZjZBYzyIHmjabTBRKehJVfmpv/dvLz vB1R6MoteAAAA To: Vinod Koul , Md Sadre Alam Cc: linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Dmitry Baryshkov , Georgi Djakov , Bjorn Andersson X-Mailer: b4 0.14.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2733; i=bjorn.andersson@oss.qualcomm.com; h=from:subject:message-id; bh=o0JjXXcxDBv5TFdiXfnwXkrMd28amcy8OmNIPYYWh9o=; b=owEBgwJ8/ZANAwAIAQsfOT8Nma3FAcsmYgBnpmp1RtxFcyltaPy4QkUHiZuJjtKYg4o3K8zlj uCRKySR3oqJAkkEAAEIADMWIQQF3gPMXzXqTwlm1SULHzk/DZmtxQUCZ6ZqdRUcYW5kZXJzc29u QGtlcm5lbC5vcmcACgkQCx85Pw2ZrcVD2g/6A8MHdtGf7f1BUcAhzUWaEHPcVGtQSlcHHwNHbIX fo4oS0rrmMpcXOinC/Hl/WlPZhg9kRewpVgGMT3rvIwNVWa7pLQbUpJHI98/MdQwxm5hKneFtuS wHwFdD10g6RpZka/HgEzwTv/rin2uTAHaHe2+zzqkRaE9raaU6vU95CKSG++u87l9CpCM6EPU34 H8oAB0I9ixITUzOer489lG/ET4tF2MEdvA2/fCzJFpP+IDQ8bsq1gv+yEhNUb3jVjqsd3HuM7Qi nXBmnQS4GJ7K+MwZUxcGkYkDEnZovmEVmdyeCJtHy+NC2lf5NSPe9qk2UM7EFP04lrc3IjuBDD/ IPl/5OV1o1dUp3ZTpP8RPm6w77ny787CMdgNEsIXIPvypzjrJVe3avTsCu451CjUD94tPdiTKKX G7A3+oqQWL3TP+fehmwPuxZSLLo7RJmdnrhmvi5Cn5FDI286SXccC0m1Qb9+cItD6E8KJyhtj2m bovtmyWVMuPRRKMdLJr5Hl66v5RwGzHxgfPwzsMljs6KCy23i9PqmqxRTlbloTw6aIKR+Roar1n HT7zL1UYc8QmvRfhY+T2NiQYMB1Z+YgQkGnIxj3gD7Lzmd+G3rc5y1iN/5RAHLKOwV/StU+eviN a4FYq6MWzrZu+hfukZJUHYupReI6NDun7YWL2zAsYP9w= X-Developer-Key: i=bjorn.andersson@oss.qualcomm.com; a=openpgp; fpr=05DE03CC5F35EA4F0966D5250B1F393F0D99ADC5 X-Proofpoint-ORIG-GUID: Ro8t6PIOvsTKHeIZNG6Gh88yE5M4xvs- X-Proofpoint-GUID: Ro8t6PIOvsTKHeIZNG6Gh88yE5M4xvs- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-07_09,2025-02-07_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 phishscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 mlxscore=0 adultscore=0 priorityscore=1501 bulkscore=0 suspectscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2501170000 definitions=main-2502070151 Commit '57a7138d0627 ("dmaengine: qcom: bam_dma: Avoid writing unavailable register")' made this read unconditional, in order to identify if the instance is BAM-NDP or BAM-Lite. But the BAM_REVISION register is not accessible on remotely managed BAM instances and attempts to access it causes the system to crash. Move the access back to be conditional and expand the checks that was introduced to restore the old behavior when no revision information is available. Fixes: 57a7138d0627 ("dmaengine: qcom: bam_dma: Avoid writing unavailable r= egister") Reported-by: Georgi Djakov Closes: https://lore.kernel.org/lkml/9ef3daa8-cdb1-49f2-8d19-a72d6210ff3a@k= ernel.org/ Signed-off-by: Bjorn Andersson Tested-by: David Heidelberg # OnePlus 6T Tested-by: Georgi Djakov # db845c Tested-by: Sam Day --- drivers/dma/qcom/bam_dma.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index c14557efd577..d42d913492a8 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -445,8 +445,8 @@ static void bam_reset(struct bam_device *bdev) writel_relaxed(val, bam_addr(bdev, 0, BAM_CTRL)); =20 /* set descriptor threshold, start with 4 bytes */ - if (in_range(bdev->bam_revision, BAM_NDP_REVISION_START, - BAM_NDP_REVISION_END)) + if (!bdev->bam_revision || + in_range(bdev->bam_revision, BAM_NDP_REVISION_START, BAM_NDP_REVISION= _END)) writel_relaxed(DEFAULT_CNT_THRSHLD, bam_addr(bdev, 0, BAM_DESC_CNT_TRSHLD)); =20 @@ -1006,8 +1006,8 @@ static void bam_apply_new_config(struct bam_chan *bch= an, maxburst =3D bchan->slave.src_maxburst; else maxburst =3D bchan->slave.dst_maxburst; - if (in_range(bdev->bam_revision, BAM_NDP_REVISION_START, - BAM_NDP_REVISION_END)) + if (!bdev->bam_revision || + in_range(bdev->bam_revision, BAM_NDP_REVISION_START, BAM_NDP_REVISIO= N_END)) writel_relaxed(maxburst, bam_addr(bdev, 0, BAM_DESC_CNT_TRSHLD)); } @@ -1199,11 +1199,12 @@ static int bam_init(struct bam_device *bdev) u32 val; =20 /* read revision and configuration information */ - val =3D readl_relaxed(bam_addr(bdev, 0, BAM_REVISION)); - if (!bdev->num_ees) + if (!bdev->num_ees) { + val =3D readl_relaxed(bam_addr(bdev, 0, BAM_REVISION)); bdev->num_ees =3D (val >> NUM_EES_SHIFT) & NUM_EES_MASK; =20 - bdev->bam_revision =3D val & REVISION_MASK; + bdev->bam_revision =3D val & REVISION_MASK; + } =20 /* check that configured EE is within range */ if (bdev->ee >=3D bdev->num_ees) --- base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b change-id: 20250207-bam-read-fix-2b31297d3fa1 Best regards, --=20 Bjorn Andersson