From nobody Tue Jun 16 15:56:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 A9DD247D946 for ; Thu, 30 Apr 2026 19:13:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576409; cv=none; b=CyuK6ebdt/Lx94f1I7F56tWjZ2680bYyWP/LyWzYk4YosR7vF1tjRXm8vncda2okjcGgqBevts/1n6lNHQf1GSIYGsi9OvXQ2rO/7AJHrrvhHfNgpP5wT+7WODdACZiUBV6um68Dc8Tj6I9vAOozDk65SCqR/pQvrj4ce2curIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576409; c=relaxed/simple; bh=eLZPPWBv7NLMx7LIGFjCzSTWf/lVoUk4bi+hIEigfWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=p0YO37PAeNdb/niSo6D9caQ23k6xx4o0hFKJPRoIvWVAxgzUnrykc3QaGGTb/+EoPJ5P+aQAu4SIHfZzTqvaosfvOTNdJZaBZVaTF93aum/BAz1EsrYM9hGtXeRolFU6VyTA2+rvjbe9z41+Hl22XnXGTHMtLkIFoi9SO9AmSGE= 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=aAHkrXW8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NI6VduDo; arc=none smtp.client-ip=205.220.168.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="aAHkrXW8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NI6VduDo" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UHQaTM1820460 for ; Thu, 30 Apr 2026 19:13:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=/uuZUqN58mn BcEF3QT5HgBeQvhVlZUW+LLbfOlfhT3g=; b=aAHkrXW8vhvWqNhMOmlJp5+igy+ vXJp7t4HmcEIJcAgofxXSUeCMKgc82unXaaDcFU0/YcfJrAAobCXNvzF0glA+aWb FficgF6XxPbp5UvwCvShrbnAWwg/wTIKWSXEWN9MajFA53yvvDxKopQP19GrK40P y+eBbbFw89IEJyZSVqwiLHaKEyHs75NlVUUTff8zRfA60JYMilAvI/HdCpbSScuJ Nl/5TxVBmcJPuy1rjdHlznrvRreB8RqL8EeKVf3sgtldw2kGndL/ZPn+f3yFJBfc 39d51aOHTo1UcveVBrsP1em4zZ2E254kh3OAzM8bT7FseZQF94MzQ5RX/cA== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dv6get6x3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:26 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c79798cd9b9so511595a12.2 for ; Thu, 30 Apr 2026 12:13:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576406; x=1778181206; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/uuZUqN58mnBcEF3QT5HgBeQvhVlZUW+LLbfOlfhT3g=; b=NI6VduDo5Pi8AI6b97sVbe0JsE4dz5KBMKgsgQc6OmpiOzaiqk1gAa3EVDg7v5TBJN CzAOcxdCZr58hxWCPicVHeUaUmtdK3qafKmmTvilwacl1SQg1Waz9t1Ob0mZK1KbOadt 1ZqB7ldOW8IY0frpW4pYpKvEQnrhG71I9J/vI3mJkaw8bUIlB6uJG4OFx9Nb6iLYlCds rLeUrfAzJV3PtacWSsHmCPZpetsF1fM525tQdH7X4LXVwiHsjU8nN6Wez3xxMhqQ1m70 PsBqhz+zySBeCrn9sJSkAr82N8ore4Os/0EpnM7iiKP/c+0RExO/UVtPKaQ5QEW2HC5h 3oIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576406; x=1778181206; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/uuZUqN58mnBcEF3QT5HgBeQvhVlZUW+LLbfOlfhT3g=; b=eikysvAISJolf2jQ0pjhXNX7IvQFNyr3wXe8z1qWsuYznI9ykRtWPOqCUfTw8y8//U YMLFeEtWLKjKpZ98wHdU8oOJYB+0gad+0HhkTa2CItbxf3IdHhl+ugYYvQGU9dSd5jyc lU7mSVMA/ezHT59rD4Efy7vHN8Lxvqs8MOd7cFBcaxcM3XFcX30JIPhuIIu1pUr9SuUh Rh9HzvHaXxbtIzi1SKD5/4eSQwk0H0L36OiyQU3/wt77KJTkfqaumUru2cnfO/Ihg90Z 4Bt4YiI6kwy6Uyi/lqKIWaOraK1bH8zNBFWt4y/Fiyh3GVpoLjPIj/5ZDF8hMi7EckZU p3YQ== X-Forwarded-Encrypted: i=1; AFNElJ9nL6dVxIoxD5yiso/4fGS5vVt/8pdI+QXJBexwlq1MrDGX5OQ92W9FgPDl4ihIDcvkEihaaHJT+G6/a+A=@vger.kernel.org X-Gm-Message-State: AOJu0YyRnV8aBWfQB95FYiS4gvr8DrJo5eGYIj4455V3jKvyNiKZQ4DK lthCTqxLK+zCF3sixZUFF7+YThljI5iOTrb+G+hF+mCfL2Nk/WrjQep3LppR44MUfxY02nlzCXi eN7aYW2UJnUxIrd98426IexKjHsjD2pvqq3t7CC589N1E6TR1VkbwvuNiNca3kfwScZs= X-Gm-Gg: AeBDiesD5eKXVR6yYogcOTW3T7TvgSzeG0lZI4IwwNNUJRhdwuI1QJRx92mrdAqHwwa b1GWh4E2uPo2eQYmC/B76qcITOYyvgwr9ErKJ3cE4PrL9voOs5mw3fivODlkWR6OYzGKWhXSgbU C0tRcsuV2PvXAAOkWDUGQEI23S3vs7t0CXcb50ZJb/6f8C8EpiusybvLrzjuAytKMcUneBuZpSu funygbt7osXynWhaUPdi2Xe2W0bC7OOjFvbWvv3iTkaZQ/4fR5UesaWYoX1Fft9Tlj9ey4JuElw rYdIZzbP9UEy2kL/5P0jiCDwJ+bsmJtvylCwxLV/XmRxf5eeH47Ve+NWXTchnOGgcJvq4VkQE3b 00fzfRntCh9YiGc0hyoRwxwoD29PALG9KJu0g07ZzOoeGVhvkqrMCuJzQPYY= X-Received: by 2002:a05:6a00:3d4a:b0:82f:7252:38cf with SMTP id d2e1a72fcca58-834fdb84e79mr5073965b3a.16.1777576406126; Thu, 30 Apr 2026 12:13:26 -0700 (PDT) X-Received: by 2002:a05:6a00:3d4a:b0:82f:7252:38cf with SMTP id d2e1a72fcca58-834fdb84e79mr5073931b3a.16.1777576405495; Thu, 30 Apr 2026 12:13:25 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:25 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha Subject: [PATCH v4 1/6] remoteproc: qcom: fix sparse warnings for __iomem annotated mem_region Date: Fri, 1 May 2026 00:42:48 +0530 Message-ID: <20260430191253.4052025-2-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=f6V4wuyM c=1 sm=1 tr=0 ts=69f3a9d6 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=ctNy7iMIxOgxZ4Gl-TwA:9 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: sVQ3RO5_60YqVraN0yagtuwz5gC4E0rl X-Proofpoint-ORIG-GUID: sVQ3RO5_60YqVraN0yagtuwz5gC4E0rl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfX1Aa4JuaPbl7O N1e/75IvpTWp7rPdOyncF/ZScduOjorLN7bSrKXlq8wUS4Bp3RdVhDP31KIP43ervHWjEn910PH k0Itn0NSRu/5xVpU/EH4BNdlvt2sWXE//u5RsG2XqW2saMINoWON8B5aBhqNKiqrl9gK/8KhRPn 4P1raAXbiAlaExkbbzNAjBZwk2Tcj6sUWQFPh+TOg104pJzF0L9m0Xuvb6VyAwjShJAc/s4M/1m dGsFh9CNE5IQ65W2TRXZ1GtGIaw0rmUAnn0fBur3uuPF0X09RiFkJIKuW0lt0K7/fmtH5fgap1O RYmNL4bwDzmMS4lS4kEb0UXSEfl+ch3oGDhv0VkttMBndDzCf42+ncW3jHBYTrvV6QSC0t5dgM2 SBCTXss0WNsm95WjgMkiFZj4TZ+kFgK5v7pPdif08d++kXBh0FRMa+OkdYGUzRVPPRq/XQXHaSW ZeJOivI5YToAba+5IIg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 suspectscore=0 adultscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 Content-Type: text/plain; charset="utf-8" The firmware memory regions in qcom_adsp, qcom_pas and qcom_wcnss are mapped using devm_ioremap_wc() / devm_ioremap_resource_wc(), which return void __iomem *. However, the mem_region (and dtb_mem_region) fields in the respective driver structs were declared as plain void *, causing sparse to flag address space mismatches: qcom_q6v5_adsp.c:639:26: warning: incorrect type in assignment (different a= ddress spaces) qcom_q6v5_adsp.c:639:26: expected void *mem_region qcom_q6v5_adsp.c:639:26: got void [noderef] __iomem * qcom_q6v5_pas.c:141:45: warning: incorrect type in argument 2 (different ad= dress spaces) qcom_q6v5_pas.c:141:45: expected void const volatile [noderef] __iomem *= src qcom_q6v5_pas.c:141:45: got void * qcom_q6v5_pas.c:637:25: warning: incorrect type in assignment (different ad= dress spaces) qcom_q6v5_pas.c:637:25: expected void *mem_region qcom_q6v5_pas.c:637:25: got void [noderef] __iomem * qcom_q6v5_pas.c:654:29: warning: incorrect type in assignment (different ad= dress spaces) qcom_q6v5_pas.c:654:29: expected void *dtb_mem_region qcom_q6v5_pas.c:654:29: got void [noderef] __iomem * qcom_wcnss.c:540:27: warning: incorrect type in assignment (different addre= ss spaces) qcom_wcnss.c:540:27: expected void *mem_region qcom_wcnss.c:540:27: got void [noderef] __iomem * Fix this by annotating the struct fields with __iomem to correctly reflect the address space of the underlying mapping. These regions are subsequently passed to qcom_mdt_load(), qcom_mdt_load_no_init() and qcom_mdt_pas_load(), all of which take void * and use plain memcpy()/memset() internally to write firmware segments into the region. This is intentional and safe: the mappings are write-combining (WC), which on arm64 permits bulk CPU stores without requiring the memcpy_toio()/memset_io() accessors. Changing the MDT loader API to accept void __iomem * would be a more invasive change and would affect callers. Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_adsp.c | 6 +++--- drivers/remoteproc/qcom_q6v5_pas.c | 10 +++++----- drivers/remoteproc/qcom_wcnss.c | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_adsp.c b/drivers/remoteproc/qcom_= q6v5_adsp.c index b5c8d6d38c9c..d2b50af6d748 100644 --- a/drivers/remoteproc/qcom_q6v5_adsp.c +++ b/drivers/remoteproc/qcom_q6v5_adsp.c @@ -105,7 +105,7 @@ struct qcom_adsp { =20 phys_addr_t mem_phys; phys_addr_t mem_reloc; - void *mem_region; + void __iomem *mem_region; size_t mem_size; bool has_iommu; =20 @@ -318,7 +318,7 @@ static int adsp_load(struct rproc *rproc, const struct = firmware *fw) int ret; =20 ret =3D qcom_mdt_load_no_init(adsp->dev, fw, rproc->firmware, - adsp->mem_region, adsp->mem_phys, + (__force void *)adsp->mem_region, adsp->mem_phys, adsp->mem_size, &adsp->mem_reloc); if (ret) return ret; @@ -491,7 +491,7 @@ static void *adsp_da_to_va(struct rproc *rproc, u64 da,= size_t len, bool *is_iom if (offset < 0 || offset + len > adsp->mem_size) return NULL; =20 - return adsp->mem_region + offset; + return (__force void *)adsp->mem_region + offset; } =20 static int adsp_parse_firmware(struct rproc *rproc, const struct firmware = *fw) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index da27d1d3c9da..45be8c5049e1 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -100,8 +100,8 @@ struct qcom_pas { phys_addr_t mem_reloc; phys_addr_t dtb_mem_reloc; phys_addr_t region_assign_phys[MAX_ASSIGN_COUNT]; - void *mem_region; - void *dtb_mem_region; + void __iomem *mem_region; + void __iomem *dtb_mem_region; size_t mem_size; size_t dtb_mem_size; size_t region_assign_size[MAX_ASSIGN_COUNT]; @@ -241,7 +241,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) } =20 ret =3D qcom_mdt_pas_load(pas->dtb_pas_ctx, pas->dtb_firmware, - pas->dtb_firmware_name, pas->dtb_mem_region, + pas->dtb_firmware_name, (__force void *)pas->dtb_mem_region, &pas->dtb_mem_reloc); if (ret) goto release_dtb_metadata; @@ -319,7 +319,7 @@ static int qcom_pas_start(struct rproc *rproc) } =20 ret =3D qcom_mdt_pas_load(pas->pas_ctx, pas->firmware, rproc->firmware, - pas->mem_region, &pas->mem_reloc); + (__force void *)pas->mem_region, &pas->mem_reloc); if (ret) goto release_pas_metadata; =20 @@ -445,7 +445,7 @@ static void *qcom_pas_da_to_va(struct rproc *rproc, u64= da, size_t len, bool *is if (is_iomem) *is_iomem =3D true; =20 - return pas->mem_region + offset; + return (__force void *)pas->mem_region + offset; } =20 static int qcom_pas_parse_firmware(struct rproc *rproc, const struct firmw= are *fw) diff --git a/drivers/remoteproc/qcom_wcnss.c b/drivers/remoteproc/qcom_wcns= s.c index 4add9037dbd5..da68bc1903be 100644 --- a/drivers/remoteproc/qcom_wcnss.c +++ b/drivers/remoteproc/qcom_wcnss.c @@ -94,7 +94,7 @@ struct qcom_wcnss { =20 phys_addr_t mem_phys; phys_addr_t mem_reloc; - void *mem_region; + void __iomem *mem_region; size_t mem_size; =20 struct qcom_rproc_subdev smd_subdev; @@ -158,7 +158,7 @@ static int wcnss_load(struct rproc *rproc, const struct= firmware *fw) int ret; =20 ret =3D qcom_mdt_load(wcnss->dev, fw, rproc->firmware, WCNSS_PAS_ID, - wcnss->mem_region, wcnss->mem_phys, + (__force void *)wcnss->mem_region, wcnss->mem_phys, wcnss->mem_size, &wcnss->mem_reloc); if (ret) return ret; @@ -327,7 +327,7 @@ static void *wcnss_da_to_va(struct rproc *rproc, u64 da= , size_t len, bool *is_io if (offset < 0 || offset + len > wcnss->mem_size) return NULL; =20 - return wcnss->mem_region + offset; + return (__force void *)wcnss->mem_region + offset; } =20 static const struct rproc_ops wcnss_ops =3D { --=20 2.53.0 From nobody Tue Jun 16 15:56:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 F3F9547DD4C for ; Thu, 30 Apr 2026 19:13:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576412; cv=none; b=kDcgWMZg2cJF2vdUE0C4RF+kXlTx/A0LTIyc4AiBj/weZ8wp316QQgzpLUvO78Ttf4/EurtzbozkT/nH9Lz7Pncaf+ovGDJ8MHDxihor+dDeExoalluzQMeZuZOL1y0hKt7SxBm5nF+p0hbbQdLT62HTIuVWHz858qdMlrvkucQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576412; c=relaxed/simple; bh=zTTihws/0VZvak5g01RFclHQtHBO7VYsS3WuK2DBoeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=btS5YlGuff1YEbDrx4nRfdtGq+LDHgDQna9TiyrqOGbDT8/geUdZ6wchHAvF+U3XovbKgqYzU5zGyeBtOYjCTa8o0B0Bsc58krqhjdGF7r816BkIrqE5BSAiazI+G6Jhk/K81mhxEg/jeRwBQXQbTMHCaX7L/IWCF2HA/8GfsTE= 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=hCMi/HFe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OkJF+nbs; arc=none smtp.client-ip=205.220.168.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="hCMi/HFe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OkJF+nbs" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UGImwo2122425 for ; Thu, 30 Apr 2026 19:13:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=+S5J50qjEa5 nRH2WIvLHmY5/93dfYCrgfWlwwfYk/Nw=; b=hCMi/HFeWHlXYjcVGLd6I6mof1+ Ef3EGREmiXZTXHoJcQ4XGGRGpzymyDxk4klDaca3EQXVQa6XloXXikwfwNM9v38P QBokLjrr06mZXBLmJCrbHa1m4WEGtVJ5rXQw2f53ZeW1dWxX3SgxSw7O9IXSE4vQ p8l1zxwfdpVomSBUlouEz7NnofxuvhsTU/kYtvSFc/dUq9OUg4WT2WpBqMDZHIYZ v+RQviVJflKk247y9ibuL4Hfn//BBSmfVgN+NwZVfcq3iizw8yygxxPe8hStyReB STIibXD9eebMgHy6OaouhejKxgH96ogylGP2p8+XH6mWyTMHbapX/FfgcUg== Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dvag4rw9m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:30 +0000 (GMT) Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-c7989b7cdd0so1571972a12.1 for ; Thu, 30 Apr 2026 12:13:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576409; x=1778181209; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+S5J50qjEa5nRH2WIvLHmY5/93dfYCrgfWlwwfYk/Nw=; b=OkJF+nbsNz5tcLXWDbIU4MKc/xBmhhedKhDPhhOpIsuVFztopJNTTMETwfhbh5QRB+ BOeVKXrKjieEp4g2yzWagzTbT8DOJNpKgf8ers180P/esPOItVgMwXIWhkmILCTJsh2V +fNwX+gM/bIbLbDE9bk7+aZA+PwCBUp0+XnwuZtwd2K6VdEFZO2ZeDmDULCdg5JNBz5t 3//BYLGO3kjhe6GTJhr0xDWcn9bDbLqcj5ly+WtZNINu1AKxT4u9iir42lOuB0KwPvf8 B7bYtgS59p+vus8QGUXWSbABIFgDqO7g21mKPdOQx8gofd27lhU0/JvfE5gDHf37RpHF +Q5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576409; x=1778181209; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+S5J50qjEa5nRH2WIvLHmY5/93dfYCrgfWlwwfYk/Nw=; b=Rhf5srj9Uu6tqNrwy662oygoM1aPjrjCdf3FtPq8NuXYwgLDkPfMb2IZ28lBQoanib JVnAOe7pyERrAeGil6z6WLdFDTzjrAT7h5W76fLlOZPq8Su8whK8Rv2/Gmpg8eIrMzZb GbR37dY9CV9W7MO0oc+upBBgKDRg9moiFyMLEFMCE5gjd2m4G3Rx26VSMYdSmbB2m2LP LYmA4Agq2BI342b5V4b88ZKsWPknHZZq2x+r8Nx9M7h5R7YLldOw7vFFLbNRQrEuKWw4 A2g0pcoe8Y6r4Gpaptnx4v/wn0N17cG1FxrDCyP59BugVJH5ozJHRzaFeIwPYToIkkeW S5mw== X-Forwarded-Encrypted: i=1; AFNElJ+dZghudD1+5Fd5wlFoDVPUd1rXdD2bjDpLmMP/VPq/SO/jqLLimJ6gAMdo4qcVbTuzkMknKMvq1SsXM9A=@vger.kernel.org X-Gm-Message-State: AOJu0YxJS1+Q0p0AXFD1XirpvnUs2gU+ySwkEpZ+Lc5siS8TdsV8lFrH CMyyJHOPdFoceXqhcwOiThGHYcO1TVeOKDP48G2mGr8ZIWT5eit0puCpfjHZCb2xFsStgQaEBr/ k3wULbI7thmg6CNFRpzUcpFThz4xVhfmFouhMa9Rz0RrmFWasPSqBCeOjcAQ6dH3aQvY= X-Gm-Gg: AeBDiet5yLzeXSCmzUV09rWacEW5Pv/VZFAuOKCZrhO3gCPn6cGIqfYR6h+1HiivbdJ DygQf2Kbq0sBLca1CMr41CwdBl8UJX1oIWPSHt8+Ao+3uncb27EWX/73U5hncYYcI69jTtJMO3e o2MCMkL7tytJ5t/8m7ediZR+GrrIpelt72gH54RzpmYeo99gb19N6LAGQZeG/3acHbueLgC3ZPe 13vT+s087WwKIrXroEW8yp6t7h/OVBuC8PX37T6dBuzCk9K4FlJu5X8rUeXB7pG6pqXYty18MiB n6ltA+I8NCRbtQWA3g/4t+weZ7iiTReZCCGvZYLbhnPg+FKZBELgPKJQOfzbz+onIWq5dJnyaEW fGypeKdLZoplDoEcwALzKZtU3W9UsP54RvZKX+IpqonQVVWdWQEjDC0ycjpM= X-Received: by 2002:a05:6a00:22cc:b0:82c:20be:57e6 with SMTP id d2e1a72fcca58-834fdb2ab1cmr4870734b3a.11.1777576409436; Thu, 30 Apr 2026 12:13:29 -0700 (PDT) X-Received: by 2002:a05:6a00:22cc:b0:82c:20be:57e6 with SMTP id d2e1a72fcca58-834fdb2ab1cmr4870705b3a.11.1777576408796; Thu, 30 Apr 2026 12:13:28 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:28 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha , Konrad Dybcio Subject: [PATCH v4 2/6] remoteproc: qcom: pas: Guard dtb metadata release with dtb_pas_id check Date: Fri, 1 May 2026 00:42:49 +0530 Message-ID: <20260430191253.4052025-3-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: gUTdJ_YNFegHlxHuEauCkj8v8QGkfiDf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfX6l1bScGjoWgs 9j5ewaGiceaUHDwCwZ/k1ePLYKme7W5A2O/r/d8UjD8gi5Ewzgt+JAJxtf//G63Tq2LIdO/HJMt 7XlaPH1L4ASWVlUDpLYDM/1DvUbetI7QdlsWnar1W2eOhnFo4UNWAb6p4O6Q7okWBo+hcZCzcfG 2VtWBrqzAnsIYocntqjiBbE4NiH4eaO/8L8bmRfitZbYH/wMFg9T6xV9aKdbjRperyIp+/sjj2s 7T/dYg0JpMunNPE0WGYIW0vsTyGw81CvLpBGCvgiN5zVQY7NVW0CtKEXGwZKClaWJRigjr5NFXH xSMP99uDhik6gL9YCDnS72wxypmDTBtlzjfVeEbV/Z3/DyYlMkXv2VKjAJfHe7CDaG8VE6I1phX ZvENihnsWG1LkE77vKbG9IEELL3oaAuRBrZElqs0Q/Y0UWgvBaIutn6icGwRFE+8a4IpX1CnnhP 81o9VToqoABxAUz7PSQ== X-Authority-Analysis: v=2.4 cv=UcxhjqSN c=1 sm=1 tr=0 ts=69f3a9da cx=c_pps a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=LDFLutnZx2YFYSqWXWMA:9 a=x9snwWr2DeNwDh03kgHS:22 X-Proofpoint-ORIG-GUID: gUTdJ_YNFegHlxHuEauCkj8v8QGkfiDf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 impostorscore=0 adultscore=0 spamscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 Content-Type: text/plain; charset="utf-8" All other call sites of qcom_scm_pas_metadata_release() for the DTB context are guarded by a check on pas->dtb_pas_id, but the call inside qcom_pas_load() was not. Fix this by moving the call to the guarded block. Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 45be8c5049e1..2785d19408d1 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -243,17 +243,14 @@ static int qcom_pas_load(struct rproc *rproc, const s= truct firmware *fw) ret =3D qcom_mdt_pas_load(pas->dtb_pas_ctx, pas->dtb_firmware, pas->dtb_firmware_name, (__force void *)pas->dtb_mem_region, &pas->dtb_mem_reloc); - if (ret) - goto release_dtb_metadata; + if (ret) { + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); + release_firmware(pas->dtb_firmware); + return ret; + } } =20 return 0; - -release_dtb_metadata: - qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); - release_firmware(pas->dtb_firmware); - - return ret; } =20 static void qcom_pas_unmap_carveout(struct rproc *rproc, phys_addr_t mem_p= hys, size_t size) --=20 2.53.0 From nobody Tue Jun 16 15:56:43 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 65DCB47DD7C for ; Thu, 30 Apr 2026 19:13:35 +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=1777576416; cv=none; b=mjKENDMKcb0ocx1OjBQ1PrqhgR17iCDxZkgWCUbGKUqTPdXe3ZNCQkg2iZL6Hzy8rRs/F5czw5I4DmkAReX6seDOeMjAMwF1Df+Dz1h1/U9GtHJTnMyz2MS+eRGKMtthuC1lrrifMDpQPeYrzRq1nRMN271VQvnAStTXHRt1ADA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576416; c=relaxed/simple; bh=gQWNsHl91ilLNjTSh7RNOaVTObxlwn2h8QvMOHtZWew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pzyNzbaxzZp/xYo6j9xJw3iyh9GG/JSEnQS8PUR99zdagvsBMfrCUnoPEroqFd/VkEMsMG8TytCjec98DflOtME1IgCpyWQ4AMXcXsu4iHwQIk9YgsB8fTk2/1UfUEvyrgZuWnx/Izc2pLrJH7N7GY54dhyQf5T6/+Lq0jteXw4= 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=heuouaUF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Xi+K8y6R; 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="heuouaUF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Xi+K8y6R" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UIppa7563973 for ; Thu, 30 Apr 2026 19:13:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=fg2lzz8NOqj c+GdU+0aG/zCCAsXprdqRORQ1jihAjpw=; b=heuouaUFx+1y9s1txSMyYBX2793 +9XmG9DbsQl7+fAek3Oxl1IYXrlezi83ftbYckPWYB+45FA7e4cjmm1pOOGLgQV/ n1SYwZWu2Zroq9WFAjALAskcA+drIYjst3ev/nTFqFbLczIoo543wj0AcyW4qgmG KDfsMqsm/xrHXz5cJqHEl9W+vHWAaCdd9cBYgWvyY53hYicZsTAkgPOTQO4hY2hm kHlc9I4a//rcmVEIYWrl9u7G8NL1R466cQR81UqUUJhDuwy4Ie7o4GxX1DL0T1DT q2yVSR0BQmDfoevMdAMqNfnz6Uu3ZeCvYSSe17UFa//+wamYJDRYdTs2Peg== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dv7wusskh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:34 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-82fa6c3a77cso917861b3a.3 for ; Thu, 30 Apr 2026 12:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576413; x=1778181213; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fg2lzz8NOqjc+GdU+0aG/zCCAsXprdqRORQ1jihAjpw=; b=Xi+K8y6R9tKYntFJBQS0hMmuZyxuwOk2UjyvawCnguvGJzYCkFytpvKXEKo384a7vP Hv3nrG0YJ7NNI5vE25qPjbV9RSeUESJr3nWtdvvxWpWAPjrdeL0xiC/QLusyOAX+4NSC oAfiHiAv4JwKzJdKBSZcFSOc1Agay8nfJFXunqcVHHLKs0DURteJWtDQkj4winb9jJFu iBbK9HiHuMdu8LZSd18w+KTVL3vczk50fE3+8u6vv5q7e+x1hMp46ceyXBnrNHmrn1Y6 owJfkivOpht34dgry5uVPLMbEsRKOE7SHiAhbbGzK5QoIla1PH1z/Ufn57JiZUVgIQFW raPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576413; x=1778181213; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fg2lzz8NOqjc+GdU+0aG/zCCAsXprdqRORQ1jihAjpw=; b=IV8ZbqJO2QfT+9vaFKfCEQ8Ivgwzcjnqx8gZGLma2MmQsoHPL8jONAyKiIqTHnRBd+ xrZTbRTRaZN0+Pv4DAOcNZU3ngvSDJBVcySfnSvbrom7wgYyf+A+owu8IO1X8AupCvoG yvtYpxvWS1IJcjRYgbuXPgyz8ndlLasNUsK4hBuzJ23c2jx1woYb60kG3UIAaiN+KllA kmSju3uaDffQ8ds5Z26xqXVD1UiOZM48EOd2dSogRjxKWtdMM6mBTBdsGV4aoWUnch96 wdE+u/TkVQS76slViboy1VCyxGza+336LD60T79NSrr+E+6jT2ynChm8y7P1Ka7nSkDN bo5w== X-Forwarded-Encrypted: i=1; AFNElJ/L4iL6jUtuOy5RL5jwGSlWmOYCxoVgplsPZU+TdC9+FvLujuheYITqn/mH6ey5zEnAvJNCkRt/Z3tjQUM=@vger.kernel.org X-Gm-Message-State: AOJu0Yxmg/S5kWRphRsSpomU5ZQV8dMllsApINp8GOku/z8StsPlVVbu MnH6SsP4KgVIZzcF6ghbxMM2rhsH72FWftOcHrgt6orjOpnohtYtWatzydjP9Uhrqh+rFkC7Ry0 b1MU0fOrsc5tDJ6/OZ1Lie98oeUPrIiHnFLb0QGZqrIUTSEyVu95hmirrFaPWaxD0pQ7+I5NNWQ s= X-Gm-Gg: AeBDievSfoNwpTduHlU8WnaBMazEGG5y7234ril6otDlMlJ17Y4routxaidiMlrKnu9 Lp9Rnt3UO1IUi6YU6hQA/z+kLp7L0sm2qKEYBg+tLb/Gv+zNBlStBtQlui/Ccc5tTbrLJVlz5FM uw9tJ6/dWkG1KY2Y1nvm+3WVJKc0S9KLckuDDD930wkJlDRHsakJwghQZCFa08eAwJK7VKIzPGE cUX0q6zR/m45tQFCiFQngi9LdsJcR1nJ2JD05Rn1Xm/F/UZbLLHlS8ewWOIGqm0mQ5S6RBjiivm vn0mRE3vI7HFZodDL+C2g2TAQ6no9M0m8q7du+P1cFModeN/YCf6BrTlnX6rIKB7rsQWwVHVZ3z fQdYO/dPTo5FY0r5bpZeBEQuWs3IHlGpS9ryhOdlUppHisxrMf9yMneIGvfw= X-Received: by 2002:a05:6a00:90a9:b0:82c:9c90:58c9 with SMTP id d2e1a72fcca58-834fe06049cmr4393905b3a.4.1777576412671; Thu, 30 Apr 2026 12:13:32 -0700 (PDT) X-Received: by 2002:a05:6a00:90a9:b0:82c:9c90:58c9 with SMTP id d2e1a72fcca58-834fe06049cmr4393871b3a.4.1777576412099; Thu, 30 Apr 2026 12:13:32 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:31 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha , Konrad Dybcio Subject: [PATCH v4 3/6] remoteproc: qcom: pas: Fix the PAS context creation placement Date: Fri, 1 May 2026 00:42:50 +0530 Message-ID: <20260430191253.4052025-4-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfX+Q/TJEueEQ/p JZiF4VXnRxaILdmjKtuQvli1L9KlOEK2pO72jmW/TQ3TJxPl9xpsYQt6mUKR87l8G3f313ulXja 0AUxPu+O1ruy80QYz5o6LkoLdm2dNw+SFheaT3AFAAUY2yBduaBuOJUSXy6ygyemhBqcDMHGtr3 howhNMOovaQfGX9vtoI7XL//gormiTr8+ysE9FeaCcFMwyXbW4jH0Mh9i7NKWskMmvxBJDSu300 /YCnTtrDOgljOdlodQ82IizpeUhb7h/y6nxgC9H8U4WouSsmlCGmKw1rtJi/BoTPirRPR2wyogm sv8luFGeNetf2cGHcSCE1SBjq6x21S04nSBgezrQhvE5Smr5fMYFh9nJNpTd8iVI06ITuJWz08x bDgaE5v8hVTtjkopwNqkOsoqIZr5n37HEjhJHh5ile5XMc9iDs2kpYWG37wWP9+hMdfN4h5Hm+9 cqx2e0J/h4jn4ShICOQ== X-Proofpoint-ORIG-GUID: jJxa91m2-tIUV3ysS1DrmMpt2ezqPqky X-Proofpoint-GUID: jJxa91m2-tIUV3ysS1DrmMpt2ezqPqky X-Authority-Analysis: v=2.4 cv=GMk41ONK c=1 sm=1 tr=0 ts=69f3a9de cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=vHqpxYNXqBXYHKvWcGcA:9 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 bulkscore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 Content-Type: text/plain; charset="utf-8" DTB PAS context creation should be done only for subsystems that support a DTB firmware binary; otherwise, memory is wasted. Move the context creation to the appropriate location. Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 32 ++++++++++++++---------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 2785d19408d1..a64fbf7225aa 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -620,6 +620,7 @@ static void qcom_pas_pds_detach(struct qcom_pas *pas, s= truct device **pds, size_ =20 static int qcom_pas_alloc_memory_region(struct qcom_pas *pas) { + struct rproc *rproc =3D pas->rproc; struct resource res; int ret; =20 @@ -637,6 +638,12 @@ static int qcom_pas_alloc_memory_region(struct qcom_pa= s *pas) return PTR_ERR(pas->mem_region); } =20 + pas->pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->pas_id, + pas->mem_phys, pas->mem_size); + if (IS_ERR(pas->pas_ctx)) + return PTR_ERR(pas->pas_ctx); + + pas->pas_ctx->use_tzmem =3D rproc->has_iommu; if (!pas->dtb_pas_id) return 0; =20 @@ -654,6 +661,14 @@ static int qcom_pas_alloc_memory_region(struct qcom_pa= s *pas) return PTR_ERR(pas->dtb_mem_region); } =20 + pas->dtb_pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->dtb_p= as_id, + pas->dtb_mem_phys, + pas->dtb_mem_size); + if (IS_ERR(pas->dtb_pas_ctx)) + return PTR_ERR(pas->dtb_pas_ctx); + + pas->dtb_pas_ctx->use_tzmem =3D rproc->has_iommu; + return 0; } =20 @@ -835,23 +850,6 @@ static int qcom_pas_probe(struct platform_device *pdev) =20 qcom_add_ssr_subdev(rproc, &pas->ssr_subdev, desc->ssr_name); =20 - pas->pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->pas_id, - pas->mem_phys, pas->mem_size); - if (IS_ERR(pas->pas_ctx)) { - ret =3D PTR_ERR(pas->pas_ctx); - goto remove_ssr_sysmon; - } - - pas->dtb_pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->dtb_p= as_id, - pas->dtb_mem_phys, - pas->dtb_mem_size); - if (IS_ERR(pas->dtb_pas_ctx)) { - ret =3D PTR_ERR(pas->dtb_pas_ctx); - goto remove_ssr_sysmon; - } - - pas->pas_ctx->use_tzmem =3D rproc->has_iommu; - pas->dtb_pas_ctx->use_tzmem =3D rproc->has_iommu; ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; --=20 2.53.0 From nobody Tue Jun 16 15:56:43 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 0740C47DD65 for ; Thu, 30 Apr 2026 19:13:37 +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=1777576419; cv=none; b=esFZafCWqmkXP9p5bI8htlU3uoQH3/pfj103obGxIrSPEzexr6u2uvdBelvF4nDIbNaQS76Hkwc1Gwt4koA7yBI5ZGPgiFVsWGCCTvqCzov7Ot0it4x1sWNu1RUdaQE6OrRJiCULyNQSEm7y896p4wPg8ZJvurb8GXmLo2iEDsg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576419; c=relaxed/simple; bh=vQTOs5F5hbmMF5CdN3fXwEjeLVdnbugt9DYKaYFTxqI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mh9Psnn6UK8YteX4c+ol+f88mx+7dDXjkweEWcSb8Q2EgRfiMaDF3LmspUNpEGqLswuM/A+udGxFl/XUv6+mEHvfuNyOJti/Bz0oPQliFeQXS3lWEJb5mIsEx1RC44B790z5+fzX9JF4juWMT1M5Db0DXYwxsPc/JMpShZ0tGR4= 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=Ebt6Fps2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FxvT29CW; 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="Ebt6Fps2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FxvT29CW" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UIcEYE1953372 for ; Thu, 30 Apr 2026 19:13:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=yhsJwvkb8bA Oz7S0BxyR81fDBNUklAIpTUW63QuLPQw=; b=Ebt6Fps2U1vEAip0EC/SzZQpOmE duPvPxvN+rGEzagP5XDpGyAK2V/J6Ay/SUfGOWerxGSJxvMhlcsM5rlXuYVs+0dY CpJa0oBuBnoH4p8WQFcRanVyBEJm+cfyGbl92p4U02rQoL6eR82d7K5OJvB7cBBI LkBYAJByil79M19RYrS0KpJRI4VWgqGjFmkqaYHCPD9kE3nhTkuFxd0I9XIiU3Sm X0FdmozajTrR4qaGDpCn81SadiOIHKjzO5Y3bcbEz2J7WUEGbm9yO3OZ4BOnT6Xk zNEixzAPyRHb0oFb/+g5NYUYtCfqKmOS596nzKP0g+dG6Exe3694uj7l43Q== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dvchk85fn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:36 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-82f2138a9e0so853156b3a.3 for ; Thu, 30 Apr 2026 12:13:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576416; x=1778181216; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yhsJwvkb8bAOz7S0BxyR81fDBNUklAIpTUW63QuLPQw=; b=FxvT29CWBIuPMo0XYYfsKnAnh22cnGdoFEH4NYNr57yz6X5y+ADtKKPL05XgIylQmg KmTl16N2Xbgo3J3U7cmnYUC5vsEtmnUg6S3je7sgfIgV22jh9r2hhv2dn7M+BR7ZvNJJ xPDpRA/MOPp3/XFQyWiLgHVbMpGmZDs0YVL8bEvhUI1iefsMqjP9jTEy2ujgXW8swVXN uTx8WKxwYWhEBDQSu+assvB1A1i8jhOarVrLjNpY9HjTsnT97TMxH0hYjhNpHSCw3pbM sKH4XHmfEHC5V4ciohdb8iIsQ/w8H3mpLibSZLmDrtS+TXy/YBZcTH/TlnUnIbDCHfSw Yskw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576416; x=1778181216; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yhsJwvkb8bAOz7S0BxyR81fDBNUklAIpTUW63QuLPQw=; b=nbDRega1zQl9axWyk0XbH3oA4HjxVW8zcdOMlbY0TY1Au2U2CDvHJYb8yMGMpqX4Yz eAyxuSX6UBv8hMEMNE8zxastvcszcRFQH4904B9rFuke1kEyhxSTEAumsX3fFgjqJLq0 ASMn680zQdnxqDuBSU31+jLwiRMXjpHA4FR/5ZiYo8NhXdjLkFe/XhPfws7gJUvw+XKm TDctSV7Zx7bIbII9gKkRYMLyg+y9hrZPo2jy29yyBf57msOYIaJagvqNU2XAIVt2MANq miCIocpuo0mlzULg9SfowhtyZJX0B0D+vMy/Evah0FWvLivvuYodem/NJdI6cKz6fgq+ 3QCA== X-Forwarded-Encrypted: i=1; AFNElJ/LFnsxz2i0s4F99sUUhauBc4LRTMBm4TJ99rS+2w8bfwdIcaOQyIudWhDyhHsPzrg5P59Rih4pxzgk/es=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+bxhOdnNr7eHhQSsja4clHvq3rZqV9NKGi4Xsgl7Son3R32/X 3cgL7Rbsz8+6T24ghJLre1mrzm3b0petaIVVJw+Y0U7FM5eTXdpq/VLr0tJcPc4zTXBm0ahaWa0 Bf0swZAK1NhX68zKxmQ04DkBdNIe+WAmbLcg2kX9cc6Yx26BcEi51rIPy7IDOC8r9wJ0= X-Gm-Gg: AeBDieupDmNed3vh2/ixQaNN5IELz9yQelrbK4FCDD1QRhSuFjrbTf04FLXDznkkbgr +94OUgOkVThp6pfqfxeRJnT4zjTFDD23anAAwdozAGunOHiDhxDFV4Dw5sa8Sd/TH2IgbCjY4q7 W1nK2K4zEEARyVQL4mGf9Ds4PxUCwwdsGJQoIT+CSPNtYYRhke8HxekeR+FGS8Gunui3ajIi0XF gmgQM9lkNPXEXNa0z+M5/B5Vt8xZ5sO5DzHc9Wi/Dl4+rw89LC1ErHtmbXVphPqHOIN5nqvtZ7Y 2bPy3q8qi37//mX4RnnFtj8PBpkloMB4VXF5OClZ3PbKl1MUnYCIC4tBsX9BNlqZ+FwbFAs+ndw iNkXVQ4b4NQda9uKN1hmhYCj3zw5EHURmH9zpp6UiXGpb90akdMBTiD9RfQ0= X-Received: by 2002:a05:6a00:124d:b0:82f:832a:75cd with SMTP id d2e1a72fcca58-834fdc6e6bbmr5320077b3a.39.1777576415770; Thu, 30 Apr 2026 12:13:35 -0700 (PDT) X-Received: by 2002:a05:6a00:124d:b0:82f:832a:75cd with SMTP id d2e1a72fcca58-834fdc6e6bbmr5320043b3a.39.1777576415143; Thu, 30 Apr 2026 12:13:35 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:34 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha Subject: [PATCH v4 4/6] remoteproc: qcom: pas: Map/unmap subsystem region before auth_and_reset Date: Fri, 1 May 2026 00:42:51 +0530 Message-ID: <20260430191253.4052025-5-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfX6qQhMGe6QB7J 9uZEkR2o2RCBIoa9Jmk4fZQDJMZIYKeXjvupILXs81vKUR7yoWkRgiM9LSnTirxwoN8903NDkom MbzukrI4EauJt1BUV6/6wZDa/rn6RJ+Hq18MeOsZuik0tt4KrPaCyrud/gzXHjiQAusc7wepWP4 GAIIpAA5htMfeg69Y1Zigh8OpmdLciS1oFRbQbrOPtrhhdTjLMeeTtlLG7x4DN9Vx9FEMQt5BL/ +P4+k7rb03suywiWpuNUUTSLVk9cUrX8j6HbuWatIu0vHJ+FQMvTD1JV8lWZPky7W4SHFM40mf7 AFmAGIMYP9KnrTpH/S9h8wMwCK1Nahp/J254Nb09hCP8Zd9NbmI5lrR5rUnuI+csnE43Y/UOERe o2b0ytC95ROtS8BEXLFspNp0Xk/Saiqfx9uhFQgWrYuN1+1HNZuOl3brIZ9DCXeeRKKq2f1T1xX wB8JkaiWBKZDOHSE+rw== X-Authority-Analysis: v=2.4 cv=Zdkt8MVA c=1 sm=1 tr=0 ts=69f3a9e1 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=7V2Ei1Jl35HJmCUZiroA:9 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-ORIG-GUID: NNOM8mMTjPwL4UzjaVlpuntejxJOJcL6 X-Proofpoint-GUID: NNOM8mMTjPwL4UzjaVlpuntejxJOJcL6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 bulkscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 Content-Type: text/plain; charset="utf-8" Qualcomm remoteproc drivers such as qcom_q6v5_mss, which do not use the Peripheral Authentication Service (PAS), always map the MBA region before use and unmap it once the usage is complete. This behavior was introduced to avoid issues seen in the past where speculative accesses from the application processor to the MBA region after it was assigned to the remote Q6 led to an XPU violation. The issue was mitigated by unmapping the region before handing control to the remote Q6. Currently, most Qualcomm SoCs using the PAS driver run either with a standalone QHEE or the Gunyah hypervisor. In these environments, the hypervisor unmaps the Q6 memory from HLOS Stage-2 and remaps it into the Q6 Stage-2 page table. As a result, speculative accesses from HLOS cannot reach the region even if it remains mapped in HLOS Stage-1; therefore, XPU violations cannot occur. However, when the same SoC runs Linux at EL2, Linux itself must perform the unmapping to avoid such issues. It is still correct to apply this mapping/ unmapping sequence even for SoCs that run under Gunyah, so this behavior should not be conditional. Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 45 ++++++++++++++++++++--------- drivers/soc/qcom/mdt_loader.c | 18 +++++++++--- include/linux/soc/qcom/mdt_loader.h | 4 +-- 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index a64fbf7225aa..6f9fe38fb1c4 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -141,6 +141,18 @@ static void qcom_pas_segment_dump(struct rproc *rproc, memcpy_fromio(dest, pas->mem_region + total_offset, size); } =20 +static int qcom_pas_map_mem_region(struct qcom_pas *pas) +{ + pas->mem_region =3D ioremap_wc(pas->mem_phys, pas->mem_size); + if (!pas->mem_region) { + dev_err(pas->dev, "unable to map memory region: %pa+%zx\n", + &pas->mem_phys, pas->mem_size); + return -ENOMEM; + } + + return 0; +} + static void qcom_pas_minidump(struct rproc *rproc) { struct qcom_pas *pas =3D rproc->priv; @@ -148,7 +160,12 @@ static void qcom_pas_minidump(struct rproc *rproc) if (rproc->dump_conf =3D=3D RPROC_COREDUMP_DISABLED) return; =20 + if (qcom_pas_map_mem_region(pas)) + return; + qcom_minidump(rproc, pas->minidump_id, qcom_pas_segment_dump); + iounmap(pas->mem_region); + pas->mem_region =3D NULL; } =20 static int qcom_pas_pds_enable(struct qcom_pas *pas, struct device **pds, @@ -241,8 +258,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) } =20 ret =3D qcom_mdt_pas_load(pas->dtb_pas_ctx, pas->dtb_firmware, - pas->dtb_firmware_name, (__force void *)pas->dtb_mem_region, - &pas->dtb_mem_reloc); + pas->dtb_firmware_name, &pas->dtb_mem_reloc); if (ret) { qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); release_firmware(pas->dtb_firmware); @@ -316,7 +332,7 @@ static int qcom_pas_start(struct rproc *rproc) } =20 ret =3D qcom_mdt_pas_load(pas->pas_ctx, pas->firmware, rproc->firmware, - (__force void *)pas->mem_region, &pas->mem_reloc); + &pas->mem_reloc); if (ret) goto release_pas_metadata; =20 @@ -507,6 +523,18 @@ static unsigned long qcom_pas_panic(struct rproc *rpro= c) return qcom_q6v5_panic(&pas->q6v5); } =20 +static void qcom_pas_coredump(struct rproc *rproc) +{ + struct qcom_pas *pas =3D rproc->priv; + + if (qcom_pas_map_mem_region(pas)) + return; + + rproc_coredump(rproc); + iounmap(pas->mem_region); + pas->mem_region =3D NULL; +} + static const struct rproc_ops qcom_pas_ops =3D { .unprepare =3D qcom_pas_unprepare, .start =3D qcom_pas_start, @@ -515,6 +543,7 @@ static const struct rproc_ops qcom_pas_ops =3D { .parse_fw =3D qcom_pas_parse_firmware, .load =3D qcom_pas_load, .panic =3D qcom_pas_panic, + .coredump =3D qcom_pas_coredump, }; =20 static const struct rproc_ops qcom_pas_minidump_ops =3D { @@ -632,11 +661,6 @@ static int qcom_pas_alloc_memory_region(struct qcom_pa= s *pas) =20 pas->mem_phys =3D pas->mem_reloc =3D res.start; pas->mem_size =3D resource_size(&res); - pas->mem_region =3D devm_ioremap_resource_wc(pas->dev, &res); - if (IS_ERR(pas->mem_region)) { - dev_err(pas->dev, "unable to map memory region: %pR\n", &res); - return PTR_ERR(pas->mem_region); - } =20 pas->pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->pas_id, pas->mem_phys, pas->mem_size); @@ -655,11 +679,6 @@ static int qcom_pas_alloc_memory_region(struct qcom_pa= s *pas) =20 pas->dtb_mem_phys =3D pas->dtb_mem_reloc =3D res.start; pas->dtb_mem_size =3D resource_size(&res); - pas->dtb_mem_region =3D devm_ioremap_resource_wc(pas->dev, &res); - if (IS_ERR(pas->dtb_mem_region)) { - dev_err(pas->dev, "unable to map dtb memory region: %pR\n", &res); - return PTR_ERR(pas->dtb_mem_region); - } =20 pas->dtb_pas_ctx =3D devm_qcom_scm_pas_context_alloc(pas->dev, pas->dtb_p= as_id, pas->dtb_mem_phys, diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index c004d444d698..ed882dd43587 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -478,22 +479,31 @@ EXPORT_SYMBOL_GPL(qcom_mdt_load); * @ctx: Pointer to the PAS (Peripheral Authentication Service) con= text * @fw: Firmware object representing the .mdt file * @firmware: Name of the firmware used to construct segment file names - * @mem_region: Memory region allocated for loading the firmware * @reloc_base: Physical address adjusted after relocation * * Return: 0 on success or a negative error code on failure. */ int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmw= are *fw, - const char *firmware, void *mem_region, phys_addr_t *reloc_base) + const char *firmware, phys_addr_t *reloc_base) { + void __iomem *mem_region; int ret; =20 ret =3D __qcom_mdt_pas_init(ctx->dev, fw, firmware, ctx->pas_id, ctx->mem= _phys, ctx); if (ret) return ret; =20 - return qcom_mdt_load_no_init(ctx->dev, fw, firmware, mem_region, ctx->mem= _phys, - ctx->mem_size, reloc_base); + mem_region =3D ioremap_wc(ctx->mem_phys, ctx->mem_size); + if (!mem_region) { + dev_err(ctx->dev, "unable to map memory region: %pa+%zx\n", &ctx->mem_ph= ys, + ctx->mem_size); + return -ENOMEM; + } + + ret =3D qcom_mdt_load_no_init(ctx->dev, fw, firmware, (__force void *)mem= _region, + ctx->mem_phys, ctx->mem_size, reloc_base); + iounmap(mem_region); + return ret; } EXPORT_SYMBOL_GPL(qcom_mdt_pas_load); =20 diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/m= dt_loader.h index 82372e0db0a1..7c551b98e182 100644 --- a/include/linux/soc/qcom/mdt_loader.h +++ b/include/linux/soc/qcom/mdt_loader.h @@ -21,7 +21,7 @@ int qcom_mdt_load(struct device *dev, const struct firmwa= re *fw, phys_addr_t *reloc_base); =20 int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmw= are *fw, - const char *firmware, void *mem_region, phys_addr_t *reloc_base); + const char *firmware, phys_addr_t *reloc_base); =20 int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, const char *fw_name, void *mem_region, @@ -47,7 +47,7 @@ static inline int qcom_mdt_load(struct device *dev, const= struct firmware *fw, =20 static inline int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmware *fw, const char *firmware, - void *mem_region, phys_addr_t *reloc_base) + phys_addr_t *reloc_base) { return -ENODEV; } --=20 2.53.0 From nobody Tue Jun 16 15:56:43 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 DED7D47DD71 for ; Thu, 30 Apr 2026 19:13:40 +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=1777576422; cv=none; b=mk6VJ9fxpTkDcwu7kjedMc33O6BMSv01JrmLdp890dce/p64nSnDB25cRuG97jPrs1ljoxZMb8jJIlZtWAmExL+dPKlSajsuiJwqmwmzVIRqd6odJ/Z8yZp7tm0VrdwcfTtAfSyTSu36Px6M9abpDdGSTnj+PGheC/iaUGjflkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576422; c=relaxed/simple; bh=kD4ecpTGjwK5qwh6hLibYlIp0vrFZGM+vF3SHumvgwc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Oy7IJnVYqurULRcslo/snkC7nHAsU2RKSDSQ0WGRbPUNhWenU3bVWoH5yymiGmBAgj3In/SC2zRCtXM3JqYDBdUAzOf0ZLkg3IrHx5i9HkCKbN5Ff0WGw/sBGYJ0U2syncJ6bMfrfk+/U3YMZL/Q2e0Z1rW/G83xsC8Wd+KMKnY= 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=ftkVCqNF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Hg07vx8n; 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="ftkVCqNF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Hg07vx8n" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UFEI8p1276563 for ; Thu, 30 Apr 2026 19:13:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=WgDI7C5Mlq8 cSRlS+CF3UfzqdurX3EaCG/jh2n5zBAg=; b=ftkVCqNFaNbIgeXSamlxbbLwYnY syxYaVCSFZIzQQhV5VEO6b3/HKCs1HW1cm7GrG9UwF7C/bX5mSuxDXYxuTrNn1LC PPBl94sc9Y2wJA7fLyfMNcsKGNjVhNOUkQ2fNi2CyfCWRw7nL39VTMO+b2I0RSVf MEwNuiWPyjQdOxqeA6ncM//19bhmbCNctAx1EUtFckhYCIOoqOW0rLrjAeDC4ee3 N3oI+tyNHwri4g4vibxuOKZyN+H/fuYmVI+mLDZIZ5BKQ8g6xP3Ssr043pSHuu8l 6UCdLm2BOO204ITSXknJVYTHpTq32XiRcb3c8giUNVBOCQZLMpC2J9RrCjQ== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dv2cq3bea-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:39 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c7ada7b25f0so652343a12.2 for ; Thu, 30 Apr 2026 12:13:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576419; x=1778181219; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WgDI7C5Mlq8cSRlS+CF3UfzqdurX3EaCG/jh2n5zBAg=; b=Hg07vx8nDPFmZOTFzA0Ki+AUggQqGYxZV+J5kg56FOyHW63T3o8J/WxBb5/K21ex1a xh3jbFmATYp2amh5AHjf5hTP/kWr/MIfoHy6jGt6k1QHf0GwV3XzgZPGx2oYvqUVSC06 yivI8NsQhymaAbFskmhPf1Isxe72Nqny8aBlCwqqjxJW5HyfyA9e4ccyCsl9T+VoCMvL U7cUVlnVZcsBLjsSL83qAt0lVbfKxWJcThDNIs+Wepxozja3FUH0+cUu8YbCCnuyK5IJ 8mJuOG6n+7OU9di0fndjs7h4qSibwweSsQ5TzfRvzRQfwUpEW9A7dGxSzvhSTqd/X4Z0 gr/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576419; x=1778181219; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WgDI7C5Mlq8cSRlS+CF3UfzqdurX3EaCG/jh2n5zBAg=; b=Uz2afh8jylNDMa4P0/qysz8WuYg2hliIT/rtEk7Rdk4fWER05CAdkmDuqlIXEWHt7x e7M5MJsFwVt8yNn9TbwecMAqwzr3Dew/sLmyvsrIn8AbZNTfDaWDqJhEpoOSvxcNod9A ESSk9DI0qzSv2d4bXzn3NNIKX5ip/wUVYzvFZBX5gxkdwf37/pgBr5FXH5XLhqqv9o6D yLCJfTMLedMy85g1LwMvAUNBDX3hCSm+DhoKixKEe19rkQ7yy5Rn2vv9JSC/F28vOz4y McNslXncizkFH870xyVLJKcSVY9m8fsdghNuVjveTSNo1KShPDGHxVW9NbG7SOBp9LEs asHg== X-Forwarded-Encrypted: i=1; AFNElJ+WaZWthEu+66Vdj7UDvDsjdYbUoXfRrUGEoLErR0k1dvDf5xV8BfC7wGgUKbo0LdRjPyl7VEUCRUWkEYs=@vger.kernel.org X-Gm-Message-State: AOJu0Yyt1lE5G7asaGkowm8uanAbV8al0/ulQJ8RuwjbvFfzU5n7z79C TBUEic2F/35kBrS6O7ajxFJSpXp5EoizwLOmm0lQ6/fw7LWOIHT8MSa5DM8LQjpInCSSFvXXdK1 iXezaDZJNemifIWfhduWVjoFnX37jHWQ332HBZNMD2x9f3NtgDObK3tCI/jhADWSl/GE= X-Gm-Gg: AeBDieuj1J0I4tV5AJI2XSdaUyGKSSmHoZuPm4K3MjkiLbQr/oRWbCCcK8h18RMmE9v 4KSxmik/IrGE8T80O2VR9ZswjGio5WVKupPigak6qPHX8jlTtd9/nCipKqvN5aHFrFxqKrht5kG MoOujdiD6RZOkWfc/L3b5lrzj+TauOgGTSM9qVtJ5LCSDpC4njPDONBo3zeu/nfrXyJYr8Lttfn oH47uMHyhHHBjgm2f0V96S8DV1t25Mj0yodKKCpWHrtBPvZBijdvGRxPcH9gW7kzHpi1mcsnO3o nWTcoMsjyDeJOMHZarPOorBt8648Lztev5ByhodhCV19Ub0HKMSvkS078KzFr3unVQi/LTB0kKC 90ao2ljrT0SxfIdS1zlOFHYzTaXc+QU/HQeiwUjq2dmsmogDuSIvfadFoCgI= X-Received: by 2002:a05:6a00:2e1a:b0:82f:2319:7d4a with SMTP id d2e1a72fcca58-834fdcdeac5mr5459226b3a.31.1777576418746; Thu, 30 Apr 2026 12:13:38 -0700 (PDT) X-Received: by 2002:a05:6a00:2e1a:b0:82f:2319:7d4a with SMTP id d2e1a72fcca58-834fdcdeac5mr5459192b3a.31.1777576418185; Thu, 30 Apr 2026 12:13:38 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:37 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha Subject: [PATCH v4 5/6] remoteproc: qcom: pas: Drop unused dtb_mem_region field Date: Fri, 1 May 2026 00:42:52 +0530 Message-ID: <20260430191253.4052025-6-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: EhGwfAri4NZ639vp_pODn7V5pE6kmbt3 X-Authority-Analysis: v=2.4 cv=aYRRWxot c=1 sm=1 tr=0 ts=69f3a9e3 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=Lqr_36QtIFBVL_bOULEA:9 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfXxpiSTD6mepgg rUxACG+NHHuDzHXGEPJ0ahpIH5vTK/iUbbv7j0SDj1loS1SPrMXpoyn4kxgntPft5Zm2t9n4YFs apLBpRXYG5Zsiu1aMMdvhJ1EUq+7RrqSQxUoNfPO3+f7obmEakW6PXR4aiB3j5oPYHVU+OlHiOb +cbJjz9uH80V2Oy/B4MYACGU7eLKdP0+xNe8a/gCgdxsZu/7dCNfuAPpsoUgdQaAmB446vhDYPW ViXJKKn+2Xh2L/MeNR2RYePdcc/ODzNWueirfzPpHgldCT1ZizAYdbYYSKqVJ8sESmuG38h4ZN7 L0ndFh/7yMIuKFkVjxAGkA3ODKllNcp3wS4qyzj/EaQMx8w6tYKlAbXDzQ6skum3CJeraftELO4 wnDzF9tBB9VhfqX8xX4cjDYFh+E8NTzDo/xHVpa90QUZ9tjf2AaytDnaWbIEx4qg01+miV+AdCx SNi5yJPDuViC5KJvgxA== X-Proofpoint-ORIG-GUID: EhGwfAri4NZ639vp_pODn7V5pE6kmbt3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 clxscore=1015 phishscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 Content-Type: text/plain; charset="utf-8" dtb_mem_region is no longer referenced after the ioremap was moved to respective places where mapping is required. Remove it from struct qcom_pas. Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 6f9fe38fb1c4..5be3070fd52b 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -100,8 +100,9 @@ struct qcom_pas { phys_addr_t mem_reloc; phys_addr_t dtb_mem_reloc; phys_addr_t region_assign_phys[MAX_ASSIGN_COUNT]; + void __iomem *mem_region; - void __iomem *dtb_mem_region; + size_t mem_size; size_t dtb_mem_size; size_t region_assign_size[MAX_ASSIGN_COUNT]; --=20 2.53.0 From nobody Tue Jun 16 15:56:43 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 540AE47DD78 for ; Thu, 30 Apr 2026 19:13:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576424; cv=none; b=XAf3JWTec7Aa2WSXvyRXZz91lkDAjTsdrA9k5eSKK8JQ4VX4x3SQ13/nkF3UujEnlNHxyp6u3SSoyF9O1mBMx2KW+jmL+j1np6LCCcZo58oJbNCAdRGBV3bMIUQbEiO03Vffkm2eY9sN0yTkaESFa4E2LVxajYtyp2qP1wC5FsA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777576424; c=relaxed/simple; bh=5A056jzGoE97ciTmd15TMvzUAfqNBpsSYmrnZzYb3T8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sop5D54d+A10IId+NNKtPhsP1ot0AYT/l387j5ub6OjUKsk1z8wQ6qMcrQFlHLS34r6wc/sT8Arcx0yGY6/G4ObJu9vFVXfwte0RytyZN90pHQhpnzJ8dKIHFjM9ZZ4wTvWqsWqM2+wzrcbVD7uIspDl/1QtgFonxSKczt/8or8= 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=InKNgtBw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Sy39ABph; arc=none smtp.client-ip=205.220.168.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="InKNgtBw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Sy39ABph" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UH4DCF1820559 for ; Thu, 30 Apr 2026 19:13:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= B2EXjzs7S+kYLNtL9rHiPcEmgW9Hm+LLRRuA2nNHZe8=; b=InKNgtBwe0MTigdK 3kZwGJUbV4toz2M/idSiiDOu9OaFrBB0OPYI6LzkpW8iYzHNKyygIuepMkhPOsoX 6bBQ1i04XP0cQKJ3b+RuPiztIBU0DDZlunTZg048+MhW+6EQcclGt0pi6Xgycvke DGcO4O0DEMnE6I27H/Kl4Zex+8Iampy4orfyaOAJHTIMefvU82pcf8qtNrFzVDbn s8DzoxKwLU3U9uMtGNAMYEfFqfQdzlvo3EM8kboSFCb+/HZY2t6bIUjHhv94VV1G rvX6fB1ELuyS+jmHH9cP5tAY16XP7LPw3geg2j3zPrIGRsSwcVWKIIo6FMWsPg/O KinjTA== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dv6get6ys-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 19:13:42 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82f6610a6c8so791141b3a.2 for ; Thu, 30 Apr 2026 12:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777576422; x=1778181222; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=B2EXjzs7S+kYLNtL9rHiPcEmgW9Hm+LLRRuA2nNHZe8=; b=Sy39ABphv0174ZYYYd/K++/w7N+zOYkZVYEY51BPKhwrc2pv/PAuwJX5lebf0nJF88 iD8DLiT2upTsmcBehIlpLU/Y0nOCxXMQpFQpD5U+MgNjldUk8QwLD47vHm8wgpnYNWEQ lNyvbiccgBcRJ2Rq4SFoY4BTvGO7pGaXmuqrEbf4OHnePzkjDpNayV9oUNwd9UfRoZe0 HathqCzmPclLFup2e7vbUJ/6Xlpn9DHR86zju5v8yDMeqsdHO52GhJNhk8EhYDsXMYKG kipi3kZ2nAr8+YI3Lcz8tMXqUXn9gFbKv4oJPlU2e7WThG2ZOEcLY4LLgkSH2/9NV/zd dxww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576422; x=1778181222; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=B2EXjzs7S+kYLNtL9rHiPcEmgW9Hm+LLRRuA2nNHZe8=; b=KzKIqTtCdBMPV8P/BaGm1D1glHb9QRdPlwH+E+P2sa4G2Fn4MBcreYoxPeRd3gd0C+ NBDUgcYxguCd7jswYS7YlUwz/N6MZ8/QnN4Bmi0f7WazLMCk/XfXUpS1ybAhkZEEGm9i dUrEzEN+4V0WNzo3pk4HqOMlFOI7zk/Wg32OjVLq41ag5ZqS0do7uD9u4jPaRfNI7DZ6 Bd9ZtjA2SdyJbP3xoE394Uhu8AP1LdrGFXx1wt+C3QaPXWB2FKS66vFcclx+66w3sBDi GPcoVM6r5xc7WG43GRNLjtIHxR0sECUCHoxkjYaZny1YQcbZC1xX5nTcMxrVVir1K8tS ECdA== X-Forwarded-Encrypted: i=1; AFNElJ+WBrm12bNTqyppnfuGk6/XtQ1q+oeXE5oQKRFLCsxz+P9bvVsddoCXGzbpWoqctoU2y2FAuZhXX4sl9sY=@vger.kernel.org X-Gm-Message-State: AOJu0Yzxu8vuwb50mFvaV1EQlu4fLl/fWgalbRII87lbjTBbdgkjYCba YxXukGDLLS9qmfckBZ71eEYlPt7kjruVs76T5Pk8Io29oxqoAFkykViiS0gXInP+OTif65CIbix 6Uk/MwJxAFsSxS9RfNnTqe0z8PMc6VHOwJiDGMxZBoRRvraEFfWSfEGBFel5abX5kW68= X-Gm-Gg: AeBDiesmExBT4dxo63RSZ1+DfqVQqu8fqmgRRnTJH5Vc/Kqn8oa2vedtQKZ5r7diMAT XqF5a3uti/QZtTlyY2CNyeqK1UylVii48tBtp8JLFjnUaP8XmuU3wAGkThpK/X0uVKGZPx9IjeY CH8QobUsPQyRimRlNQ7C1ZwG5bL51/99QLHuEnzz1v5GXS65VkRr35Tjf1QZERb3Jxn1BeXuaqU 56z5vbDsVFWXbZ6YB3SOngVtJBLH7pHYyOaPI8CgsxKOX2HDHs6yWkQRTUxt7KqmiaFqc31OsPY nGAQTjdegDUyY+HSjYkav50toPBda1qdGC8tQzhOnlrc3GZBeAbvXkgWU3j1jLizzupGKbVxKxZ prWhC64MxyHB4WaOrBGDjLGi6eGTI8kpbe9EH73yd/nFixFSkzVm2TtiVMpM= X-Received: by 2002:a05:6a00:228e:b0:834:df57:9d67 with SMTP id d2e1a72fcca58-834fdc16541mr4811155b3a.32.1777576421819; Thu, 30 Apr 2026 12:13:41 -0700 (PDT) X-Received: by 2002:a05:6a00:228e:b0:834:df57:9d67 with SMTP id d2e1a72fcca58-834fdc16541mr4811102b3a.32.1777576421239; Thu, 30 Apr 2026 12:13:41 -0700 (PDT) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83515b485eesm373640b3a.48.2026.04.30.12.13.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 12:13:40 -0700 (PDT) From: Mukesh Ojha To: Bjorn Andersson , Konrad Dybcio , Mathieu Poirier Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org, Mukesh Ojha Subject: [PATCH v4 6/6] firmware: qcom: scm: introduce keep_mdt_buf flag in PAS context Date: Fri, 1 May 2026 00:42:53 +0530 Message-ID: <20260430191253.4052025-7-mukesh.ojha@oss.qualcomm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> References: <20260430191253.4052025-1-mukesh.ojha@oss.qualcomm.com> 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 X-Authority-Analysis: v=2.4 cv=f6V4wuyM c=1 sm=1 tr=0 ts=69f3a9e6 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=g7xFvzIaMl2GvowGQBkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-GUID: MgUiWY9yR0TPFYOqf7gTmEBkoI_OmrLQ X-Proofpoint-ORIG-GUID: MgUiWY9yR0TPFYOqf7gTmEBkoI_OmrLQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE5OSBTYWx0ZWRfX4vQyunt18sVE vS/eNGAk3JAMprcQL3yiimSIoAPtFYpUXM1h0sHzuWESCseABJkriebG2OO1QaKisLhBSQuQvO3 oPUO0FsUS5nar+MCPgk9rVXRQx9uAr7NkUGQL+51ohebpFP2KzBqScoVKSjwQbF0ohwWBTIX9ri r3E+gzBpvWjZx9X4tB3f7SHmSoDvr9smnz/C/VqJDWnlM5Iywl+vHB50zjyyzyXOTrAIXbHiyZB 5g+H4CGPcKnE1fgLEwxNGeLe02YTKO58FqgslkSzF7eWlMQbW0L9N/yKFmdKT91tSj8bZfqOjjE Xkpnk2Q5BN8rM5VNyXHFYbrKGKiSkAfvDfvoBfztJ37zzCoJl+/4LT8kVFE7PFT4zGFZ9u8eGmE vR732x15MdCIlveAopPR7EBtrBjAWz79owpnnIFFTUmKRlG1uC8S6HWvINj8Ltlu2VCDrNSPBjr yVJOmGE0jsqDLrMWZXQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-30_05,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 suspectscore=0 adultscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300199 The PAS image initialization path always retains the metadata buffer when a valid qcom_scm_pas_context is provided, even if the caller does not require it. This implicit behavior leads to unclear buffer ownership and forces new users of qcom_mdt_pas_load() to manually release metadata, which is error=E2=80=91 prone and incorrect. Add a keep_mdt_buf flag to struct qcom_scm_pas_context to make metadata retention explicit. Metadata buffers are now freed by default and are only preserved when this flag is set. qcom_q6v5_pas enables this during probe for contexts that require retained metadata for subsequent PAS operations, while existing callers continue to work unchanged. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 21 ++++++++++++++++++--- drivers/remoteproc/qcom_q6v5_pas.c | 2 ++ include/linux/firmware/qcom/qcom_scm.h | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 9b06a69d3a6d..2cae35e7c583 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -651,7 +651,7 @@ static int qcom_scm_pas_prep_and_init_image(struct qcom= _scm_pas_context *ctx, mdata_phys =3D qcom_tzmem_to_phys(mdata_buf); =20 ret =3D __qcom_scm_pas_init_image(ctx->pas_id, mdata_phys, &res); - if (ret < 0) + if (ret < 0 || !ctx->keep_mdt_buf) qcom_tzmem_free(mdata_buf); else ctx->ptr =3D mdata_buf; @@ -707,9 +707,24 @@ int qcom_scm_pas_init_image(u32 pas_id, const void *me= tadata, size_t size, memcpy(mdata_buf, metadata, size); =20 ret =3D __qcom_scm_pas_init_image(pas_id, mdata_phys, &res); - if (ret < 0 || !ctx) { + + /* + * Some clients still pass the PAS context as NULL. Until all clients + * switch to qcom_mdt_pas_load() and provide a valid PAS context, check + * for NULL before dereferencing it. + * + * When a valid context is provided, metadata handling differs across + * clients. For example, modem clients pass metadata to TrustZone that + * must not be freed until the authentication and reset SMCs are + * invoked, as the buffers remain locked until then. + * + * Other clients free their metadata immediately after the PAS_INIT + * SMC call. Therefore, keep_mdt_buf should be set to true for modem + * clients and false for others. + */ + if (ret < 0 || !ctx || !ctx->keep_mdt_buf) { dma_free_coherent(__scm->dev, size, mdata_buf, mdata_phys); - } else if (ctx) { + } else { ctx->ptr =3D mdata_buf; ctx->phys =3D mdata_phys; ctx->size =3D size; diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 5be3070fd52b..7858e14c0bee 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -669,6 +669,7 @@ static int qcom_pas_alloc_memory_region(struct qcom_pas= *pas) return PTR_ERR(pas->pas_ctx); =20 pas->pas_ctx->use_tzmem =3D rproc->has_iommu; + pas->pas_ctx->keep_mdt_buf =3D true; if (!pas->dtb_pas_id) return 0; =20 @@ -688,6 +689,7 @@ static int qcom_pas_alloc_memory_region(struct qcom_pas= *pas) return PTR_ERR(pas->dtb_pas_ctx); =20 pas->dtb_pas_ctx->use_tzmem =3D rproc->has_iommu; + pas->dtb_pas_ctx->keep_mdt_buf =3D true; =20 return 0; } diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index 5747bd191bf1..6d8d3deb02e0 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -75,6 +75,7 @@ struct qcom_scm_pas_context { dma_addr_t phys; ssize_t size; bool use_tzmem; + bool keep_mdt_buf; }; =20 struct qcom_scm_pas_context *devm_qcom_scm_pas_context_alloc(struct device= *dev, --=20 2.53.0