From patchwork Mon Dec 4 18:54:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oreoluwa Babatunde X-Patchwork-Id: 173525 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp2968542vqy; Mon, 4 Dec 2023 10:57:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IE8Tk9r/S7WGsRqnh58eEjc4xptCsW8Qmwz/2mr5xmfE1UT3t0GGvuBz/23Gaqzz4y+WWfX X-Received: by 2002:a05:6a00:3013:b0:6cb:cd66:2102 with SMTP id ay19-20020a056a00301300b006cbcd662102mr292779pfb.4.1701716225192; Mon, 04 Dec 2023 10:57:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701716225; cv=none; d=google.com; s=arc-20160816; b=musHu/dSn/wQYggQTSahSjm2/WXqothRBuPjSmkb0HPHBH1UG6ASsdmegsbNmq5M8T qK0NcJxfIOI4wCaoZsWNjAk6qRPIrkuRJocnNXS+v/EH3XUnBX8hU3UKUSGF/QLf0Hmb i6zGNIwAClS1FfAcve2O97lje9aZzj1+lsSDis2LZ21l0+YGzh0qgxwMBqcfWOuoC9pI 55wYsidqOI/b83saRpDCUgvbDn94zSWWzV02vYmlLgK4N7T/CY8R1LkOZ6GSpK8C82Uq 28oVIPJPN10g30/fnOC8Ko02M3xRKgI3gIEskH36mt1YJMxwX/tA7SfkjZfpDUIoysIi /caw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=n6Lojg+3L7EfygQUx0vRNm4ETKLDPxcnSDHlrIicw7Y=; fh=AfACOzYsAw2FP5vLurF8iL1ue9vq0GHYQcZwZUotW7Q=; b=imnD0uxxwDEAFM6jvr1MSStlE/tcDU9Ueg4wPoG88UVXwCospFFm9BsVeBTX4ObhyT Ef4FAbtfbdz5MMzLLBXAQc2niLAHIBMOuUgzXJN/SXWPWJeGjcGd2Zds9D3CJhXqaxWR Sg4axo4g34Psj0wStlHp/4Zo1NczJ/zxF4P3r41LP3t4fQtnJUJj1mL3pY7n0lk5+DYO XrMsDphneZlC8UDyEHS7djnP17cJRlOyHpJevOrxA58uMrVRcAkig/kx8sOfwYigmJnF d5SV9NLoKZxQQPgXsJhWn07WWVS/+GEnUivw55kbx8oOrJTqrI4CnX0xrY69p0f2ysmp BbFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=dSL2X98X; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id cm3-20020a056a020a0300b0057755b2f032si1956406pgb.542.2023.12.04.10.57.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 10:57:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=dSL2X98X; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id AF7EF80BE7F3; Mon, 4 Dec 2023 10:57:02 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235389AbjLDS4l (ORCPT + 99 others); Mon, 4 Dec 2023 13:56:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230103AbjLDS4i (ORCPT ); Mon, 4 Dec 2023 13:56:38 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99732B2; Mon, 4 Dec 2023 10:56:42 -0800 (PST) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B4Fap4b014942; Mon, 4 Dec 2023 18:54:48 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-type; s=qcppdkim1; bh=n6Lojg+3L7EfygQUx0vRNm4ETKLDPxcnSDHlrIicw7Y=; b=dSL2X98XzMxJYEk7uH3+GxrxCZReZnQ7ONhqD0Y4eYBjfMhyiE4BblqQa7V1XzwRtvhg yRn3mw+mDBiV+M3xEhib6gh2g3RoNLsFVLuX9HzFmVITupJacvXkRBLcrNpmbo4ZOksW q4RC5coC9XX0WoFjfwm89PxapnfQiPBBUZS8bbn/YlfkUVgBGNzZgVX5Bfu+53t8oL3Q pJqb5npRT53xix0+hMXM0QqTwIJxouJ1ZR4iLVLBjDcfMnjvqH7N/dLSeGQwTt3psgLi WFWuwt+14KxXME7WaCCnroCMwRImkErarPzFnSyMIDM70SBMQ5YJaNlr8QGDYXkLFYdy YQ== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3usgs7gmyb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Dec 2023 18:54:47 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3B4IskL2026195 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 4 Dec 2023 18:54:46 GMT Received: from hu-obabatun-lv.qualcomm.com (10.49.16.6) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Mon, 4 Dec 2023 10:54:43 -0800 From: Oreoluwa Babatunde To: , , , , , , , , , , , , , , , , , , CC: , , , , , Oreoluwa Babatunde Subject: [RFC PATCH v2 3/6] of: resevred_mem: Delay allocation of memory for dynamic regions Date: Mon, 4 Dec 2023 10:54:06 -0800 Message-ID: <20231204185409.19615-4-quic_obabatun@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20231204185409.19615-1-quic_obabatun@quicinc.com> References: <20231204185409.19615-1-quic_obabatun@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01a.na.qualcomm.com (10.47.209.196) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: SkKP7LrC-_D4wSWBBd1gO9AUleDBVVA3 X-Proofpoint-GUID: SkKP7LrC-_D4wSWBBd1gO9AUleDBVVA3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-04_18,2023-12-04_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=857 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312040146 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 04 Dec 2023 10:57:02 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784378792833057975 X-GMAIL-MSGID: 1784378792833057975 Defer the allocation of memory for the dynamically-placed reserved memory regions until after the statically-placed reserved memory regions have been reserved or marked as nomap in memblock. This is to avoid allocating from regions that will later turn out to have been reserved by other nodes. Signed-off-by: Oreoluwa Babatunde --- drivers/of/fdt.c | 18 ++++++++++++++++-- drivers/of/of_private.h | 1 + drivers/of/of_reserved_mem.c | 1 - 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 34223c249914..46adce306bbd 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -613,6 +613,8 @@ void __init fdt_scan_reserved_mem_reg_nodes(void) static int __init fdt_scan_reserved_mem(void) { int node, child; + int dynamic_nodes_cnt = 0; + int dynamic_nodes[MAX_RESERVED_REGIONS]; const void *fdt = initial_boot_params; node = fdt_path_offset(fdt, "/reserved-memory"); @@ -634,8 +636,20 @@ static int __init fdt_scan_reserved_mem(void) uname = fdt_get_name(fdt, child, NULL); err = __reserved_mem_reserve_reg(child, uname); - if (err == -ENOENT && of_get_flat_dt_prop(child, "size", NULL)) - __reserved_mem_alloc_size(child, uname); + + if (err == -ENOENT && of_get_flat_dt_prop(child, "size", NULL)) { + dynamic_nodes[dynamic_nodes_cnt] = child; + dynamic_nodes_cnt++; + } + } + + for (int i = 0; i < dynamic_nodes_cnt; i++) { + const char *uname; + + child = dynamic_nodes[i]; + uname = fdt_get_name(fdt, child, NULL); + + __reserved_mem_alloc_size(child, uname); } return 0; } diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h index f38397c7b582..57694a704b00 100644 --- a/drivers/of/of_private.h +++ b/drivers/of/of_private.h @@ -36,6 +36,7 @@ struct alias_prop { #endif #define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 +#define MAX_RESERVED_REGIONS 64 extern struct mutex of_mutex; extern raw_spinlock_t devtree_lock; diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 8bd8bbc3aaec..d62f1956024c 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -26,7 +26,6 @@ #include "of_private.h" -#define MAX_RESERVED_REGIONS 64 static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS]; static int reserved_mem_count;