From patchwork Tue May 30 23:36:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Andersson X-Patchwork-Id: 13261210 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 102EBC7EE31 for ; Tue, 30 May 2023 23:37:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233650AbjE3XhC (ORCPT ); Tue, 30 May 2023 19:37:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57962 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233353AbjE3XhA (ORCPT ); Tue, 30 May 2023 19:37:00 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11E93106; Tue, 30 May 2023 16:36:59 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34UN4pWA011423; Tue, 30 May 2023 23:36:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=EE//b1snTAVZKu4seqX0NMsp4006NwEPtqjn92nqbh8=; b=O+iBmk3ASDZAsT1S/73hUUONQLOZlpL95DNOKWCjTUigCg8AedS/t+aq/RTM7tjOyFpM IrffRpgeuorB8S8ZoOQgNdZFSp0cMNe76ROQKjJUdgd7eYHzdUt4C4+2S1qhijEGM+CI p4S8jz/f/q7DZW/R0sHu7vYV9vc/uSwr4Ur4jSXM3L57w4ZpvcY282+gRLji+zF4M7cV wpd8q2pWJKZooDEg5CW7Kzaw9Pjud4Ks9Nn3WXjCLOsem1ID+KoP1Je2xrhNHQ3uVRhn whvT4OZ4r23E71xovgzD9nsAnMeP6Llrvg2n/yzHJzeJ5+mYgREds/uSJEmPuUC3FvwV nA== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qw8v4tbfn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:50 +0000 Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34UNan1C001333 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:49 GMT Received: from hu-bjorande-lv.qualcomm.com (10.49.16.6) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 30 May 2023 16:36:49 -0700 From: Bjorn Andersson To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley CC: , , Subject: [PATCH v2 1/3] dt-bindings: reserved-memory: rmtfs: Allow guard pages Date: Tue, 30 May 2023 16:36:41 -0700 Message-ID: <20230530233643.4044823-2-quic_bjorande@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230530233643.4044823-1-quic_bjorande@quicinc.com> References: <20230530233643.4044823-1-quic_bjorande@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: nUnLj9DhM4-9yxA-PRdmxfa_Xu2l5vBs X-Proofpoint-GUID: nUnLj9DhM4-9yxA-PRdmxfa_Xu2l5vBs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-05-30_17,2023-05-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 priorityscore=1501 clxscore=1015 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305300193 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On some Qualcomm platforms it's required that the rmtfs memory is not placed adjacent to allocations performed by other clients. Some DeviceTree authors have solved this by reserving the space around the region, but this prevents such author to use rely on the OS to place the region, through the use of "size" (instead of a fixed location). So introduce a flag to indicate that guard pages should be carved at the beginning and end of the memory region. The user shall account for the two 4k blocks in the defined size. Signed-off-by: Bjorn Andersson --- Changes since v1: - Drop qcom,alloc-size in favour of using reserved-memory/size - Introduce explicit property to signal that guard pages should be carved out from this region (rather than always do it in the dynamic case). .../bindings/reserved-memory/qcom,rmtfs-mem.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/reserved-memory/qcom,rmtfs-mem.yaml b/Documentation/devicetree/bindings/reserved-memory/qcom,rmtfs-mem.yaml index bab982f00485..26e24e7b08cf 100644 --- a/Documentation/devicetree/bindings/reserved-memory/qcom,rmtfs-mem.yaml +++ b/Documentation/devicetree/bindings/reserved-memory/qcom,rmtfs-mem.yaml @@ -26,6 +26,13 @@ properties: description: > identifier of the client to use this region for buffers + qcom,use-guard-pages: + type: boolean + description: > + Indicates that the OS should ignore the first and last 4k block of the + memory region, for the purpose of ensuring that the allocation is not + adjacent to other protected regions. + qcom,vmid: $ref: /schemas/types.yaml#/definitions/uint32-array description: > From patchwork Tue May 30 23:36:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Andersson X-Patchwork-Id: 13261211 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 4E9E7C7EE23 for ; Tue, 30 May 2023 23:37:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233600AbjE3XhB (ORCPT ); Tue, 30 May 2023 19:37:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229866AbjE3XhA (ORCPT ); Tue, 30 May 2023 19:37:00 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E09EF9; Tue, 30 May 2023 16:36:58 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34UN5ACG014126; Tue, 30 May 2023 23:36:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=BnKFAV9+C/6aBw4MDNRYTAckbflTdeJa6d+pxoJogoY=; b=Naw1/tHll8dN0eqt+UCXqnj73USVK9+XTWiTkJsNj3dfl/Va38U3aUMySHVC1ghDwmS0 o2tMjJ4XHjO3x+ct5czhcVybKC45gswdk7YH5x6quCQs+cWTAgWDKaJpBwwhhGO0HG81 XYAIOOSzU5yG+bKLjg+n2Bj0XS5uYYxoE8CesWyFmsjjzCpBgXX0dmIKF2IM6PYzlRMr y6BkZcTYR6bBzmnWHezGOYjhz/j7lI0B0vnUy/wZXeUfVpVGkMlYPdOQRlCYCEtOH20e uTyXhbVIs1wDqFZWi/KjjFWdtBhzcHujnz+lwsT7WmkOWOF1tCui4HtVKZSz3cgcjeH0 Uw== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qwryer6g8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:50 +0000 Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34UNancr001337 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:49 GMT Received: from hu-bjorande-lv.qualcomm.com (10.49.16.6) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 30 May 2023 16:36:49 -0700 From: Bjorn Andersson To: Bjorn Andersson , Konrad Dybcio CC: Rob Herring , Krzysztof Kozlowski , Conor Dooley , , , Subject: [PATCH v2 2/3] soc: qcom: rmtfs: Support discarding guard pages Date: Tue, 30 May 2023 16:36:42 -0700 Message-ID: <20230530233643.4044823-3-quic_bjorande@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230530233643.4044823-1-quic_bjorande@quicinc.com> References: <20230530233643.4044823-1-quic_bjorande@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 3hs9piWICMgKRhBLfS3yFAs2VMeEKVE0 X-Proofpoint-ORIG-GUID: 3hs9piWICMgKRhBLfS3yFAs2VMeEKVE0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-05-30_17,2023-05-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 bulkscore=0 mlxscore=0 impostorscore=0 priorityscore=1501 phishscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305300193 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org In some configurations, the exact placement of the rmtfs shared memory region isn't so strict. The DeviceTree author can then choose to use the "size" property and rely on the OS for placement (in combination with "alloc-ranges", if desired). But on some platforms the rmtfs memory region may not be allocated adjacent to regions allocated by other clients. Add support for discarding the first and last 4k block in the region, if qcom,use-guard-pages is specified in DeviceTree. Signed-off-by: Bjorn Andersson Reviewed-by: Caleb Connolly --- Changes since v1: - Drop the dma_alloc_coherent() based approach and just add support for the guard pages. drivers/soc/qcom/rmtfs_mem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c index f83811f51175..28238974d913 100644 --- a/drivers/soc/qcom/rmtfs_mem.c +++ b/drivers/soc/qcom/rmtfs_mem.c @@ -213,6 +213,16 @@ static int qcom_rmtfs_mem_probe(struct platform_device *pdev) goto put_device; } + /* + * If requested, discard the first and last 4k block in order to ensure + * that the rmtfs region isn't adjacent to other protected regions. + */ + if (of_property_present(node, "qcom,use-guard-pages")) { + rmtfs_mem->addr += SZ_4K; + rmtfs_mem->base += SZ_4K; + rmtfs_mem->size -= 2 * SZ_4K; + } + cdev_init(&rmtfs_mem->cdev, &qcom_rmtfs_mem_fops); rmtfs_mem->cdev.owner = THIS_MODULE; From patchwork Tue May 30 23:36:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Andersson X-Patchwork-Id: 13261212 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 0729EC77B73 for ; Tue, 30 May 2023 23:37:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233727AbjE3XhC (ORCPT ); Tue, 30 May 2023 19:37:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233029AbjE3XhA (ORCPT ); Tue, 30 May 2023 19:37:00 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42652107; Tue, 30 May 2023 16:36:59 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34UNGt45003635; Tue, 30 May 2023 23:36:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=qPSZiIgCFceFazehkUzE7aZRdYowN6+xUI+qlLpyzz8=; b=QFdikKn19y1Bv0kcIVdpWgiMHW8Ew/gVMOvFOwma0qLXYg5na9LTgY0h67youKn0/fFT P7iZxZ3fytdsH3Kg4avX2bc0iwQJ/khyNyG9Ou0XB+k5l61hLA7K2Cmxoz7S+cnCNvgV BNn4CIk+Q/WosVgvH3KgkBJfZvMdP/FPjhNhdslUM5hMJ8qqxw6rqTQnUmEz4HiKY6Ue 093CRFhkZjBNIX8KzYJn/FnCWXs54fQLuu9ParhBdiV+H14FFLFvHVdFHY5tIBOm514s WJX7ieqyBqmayUasmLelU5IZg7TDSL100ERi8Vtb//YuP2AotDQRwhR6he0xBOPnpIzc qA== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3qw8v4tbfq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:50 +0000 Received: from nalasex01c.na.qualcomm.com (nalasex01c.na.qualcomm.com [10.47.97.35]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 34UNaooJ014641 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 May 2023 23:36:50 GMT Received: from hu-bjorande-lv.qualcomm.com (10.49.16.6) by nalasex01c.na.qualcomm.com (10.47.97.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 30 May 2023 16:36:49 -0700 From: Bjorn Andersson To: Bjorn Andersson , Konrad Dybcio CC: Rob Herring , Krzysztof Kozlowski , Conor Dooley , , , Subject: [PATCH v2 3/3] soc: qcom: rtmfs: Handle reserved-memory allocation issues Date: Tue, 30 May 2023 16:36:43 -0700 Message-ID: <20230530233643.4044823-4-quic_bjorande@quicinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230530233643.4044823-1-quic_bjorande@quicinc.com> References: <20230530233643.4044823-1-quic_bjorande@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) To nalasex01c.na.qualcomm.com (10.47.97.35) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: 8sC1niehEyTMmkS9m9iHlIm1tTyOaNI9 X-Proofpoint-GUID: 8sC1niehEyTMmkS9m9iHlIm1tTyOaNI9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-05-30_17,2023-05-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 spamscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxscore=0 mlxlogscore=823 priorityscore=1501 clxscore=1015 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305300193 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org In the even that Linux failed to allocate the reserved memory range specified in the DeviceTree, the size of the reserved_mem will be 0, which results in a oops when memory remapping is attempted. Detect this and report that the memory region was not found instead. Signed-off-by: Bjorn Andersson --- Changes since v1: - New patch drivers/soc/qcom/rmtfs_mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c index 28238974d913..e3a55fa041f9 100644 --- a/drivers/soc/qcom/rmtfs_mem.c +++ b/drivers/soc/qcom/rmtfs_mem.c @@ -180,7 +180,7 @@ static int qcom_rmtfs_mem_probe(struct platform_device *pdev) int ret, i; rmem = of_reserved_mem_lookup(node); - if (!rmem) { + if (!rmem || !rmem->size) { dev_err(&pdev->dev, "failed to acquire memory region\n"); return -EINVAL; }