From patchwork Mon Dec 4 04:13:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oreoluwa Babatunde X-Patchwork-Id: 173061 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp2541782vqy; Sun, 3 Dec 2023 20:14:37 -0800 (PST) X-Google-Smtp-Source: AGHT+IHzYkW3msB6mkGreEAh71FOcK1RJSdQJFTyymm7vnOlLRBWdLV/XGMqvnQDyFC86P85zBvz X-Received: by 2002:a17:90a:f507:b0:285:80d5:6e51 with SMTP id cs7-20020a17090af50700b0028580d56e51mr1217508pjb.21.1701663277067; Sun, 03 Dec 2023 20:14:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701663277; cv=none; d=google.com; s=arc-20160816; b=ue/44OxOIT0r7RfNkl5ho0763Gm7rJfsSjkv1z9RZ5ertXNgfYXzUzoQM8vaXuDsJn Jl+Aw7wt9hQaYE/pwLDDYyRkt40uhpX8gg82YlVprP31CGcCvr+DpK1Q+ZawGtig7Kyz STg4ykj3j6k/fgvKSwS6qiZA1F3aCJvBkruyATFrct79MsvXE5F4ZC+Qnf40Wpor80Ab hGCUJFu4O13ha5hy6Ri9dYsOdE8uv9RwL9COA0sTjzokmsgNiQAyqCeQjaOlgLPbn96/ vUsJvRuYK3pm5fJWCD5yVHxt3mUrCZhTLQd4O7Cxzk68888bTqewl0yXqEDpB+0pZg5F nAcA== 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=JCb6YaKmbUpp/1fFgtqOrlyOUwhehZd1rxGbEgdh7vM=; b=dlwn1+qdU0jX6w7xGVAMKb9FhgJqumMnJpRkWjBtdBTOs5YBkS337ed9iw5y07a2dq QISKkO65ZKeaYqsGh7sGTpx2i3v6SCTlbYbSkCQBAPy9Dz5uVVaxEYFvqf7wH6d1Le7i Xa1TaOj+ef9X6yBk+MYfzaJMBuSydm5iXYPgpovVZjQdN+wKAPO2wNhKpNGQlihizY9r Abzb/vOe104jCOi6HjlofVYKbjXO54K9H6SkZ01dL1WxzzzyvgovcrqMbX92rw7hn1az EXY+byYsILDsXexd2hojWQeMQA0CGRx1YsB6bB53frdr9z3ZsEO2F8fG+rxI3OeS8wFs Rcbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VmOJFvMH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 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 groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id bj21-20020a17090b089500b0028655f194afsi5283004pjb.184.2023.12.03.20.14.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Dec 2023 20:14:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VmOJFvMH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 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 groat.vger.email (Postfix) with ESMTP id 99C49808D2BA; Sun, 3 Dec 2023 20:14:31 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234416AbjLDEOV (ORCPT + 99 others); Sun, 3 Dec 2023 23:14:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229510AbjLDEOU (ORCPT ); Sun, 3 Dec 2023 23:14:20 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE91ED5; Sun, 3 Dec 2023 20:14:25 -0800 (PST) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B43JNgi017074; Mon, 4 Dec 2023 04:14:04 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=VmOJFvMHFxynJ+ToxMLT5Zer93ebl8KfK+616vLcbl9fCvtEYO7sMzG++5RZfeSYdqIb LIOze6OmKu1o3ydGtf0xP+9bfYJ5csprDyoNSNpumvg95xqjLEhKstf5/De0Gosl4XO1 pJoq+9peZ52tw4YQmbv419oAi8ldhFxsmA+vxiTOOLy1+9qrnV4oMtwZZ4bjFCwMxuN5 lxaxDjg2QZiyp4hnQXPWHRr0MRACDl0KVSznSN2YtZUqZspQkgy9fBFYn3v2DlCyIet9 +5o39QZf9SHJfJGOrOXg4sJtLyHDtZyuUR3/8j+tpehg9peg/gFuFaikF/iYXWN6xVmT GA== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3uqvyetutq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Dec 2023 04:14:04 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3B44E3qs004866 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 4 Dec 2023 04:14:03 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; Sun, 3 Dec 2023 20:14:00 -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: Sun, 3 Dec 2023 20:13:36 -0800 Message-ID: <20231204041339.9902-4-quic_obabatun@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20231204041339.9902-1-quic_obabatun@quicinc.com> References: <20231204041339.9902-1-quic_obabatun@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] X-ClientProxiedBy: nalasex01b.na.qualcomm.com (10.47.209.197) 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: J0Gc84gPalOhRT044WtmVIv8ubGb7E1a X-Proofpoint-GUID: J0Gc84gPalOhRT044WtmVIv8ubGb7E1a 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_01,2023-11-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 mlxlogscore=807 bulkscore=0 suspectscore=0 clxscore=1015 spamscore=0 mlxscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312040029 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 groat.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 (groat.vger.email [0.0.0.0]); Sun, 03 Dec 2023 20:14:32 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784323272354981705 X-GMAIL-MSGID: 1784323272354981705 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;