From patchwork Fri Jan 5 23:14:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Herring X-Patchwork-Id: 123563 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp1397871qgn; Fri, 5 Jan 2018 15:15:22 -0800 (PST) X-Google-Smtp-Source: ACJfBovpdkPPbA7hWlOJq2mIrXnJVHPMmEpwiaUgjdkOTFEVBu3l94nR0YQ0xTregUQZ67Mzmh1S X-Received: by 10.159.255.8 with SMTP id bi8mr4582218plb.269.1515194122613; Fri, 05 Jan 2018 15:15:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1515194122; cv=none; d=google.com; s=arc-20160816; b=lQtgBskPA07yvxb69no96vVSS5q3fJAYry7iI4cqx6EQZ6NnEpSTyJ1/CronUP1iqC ZvT40rw6/f27iLCzI+E5RjOl0DLA3q4+ZwJnfLCF2ZvJdO9T9FXYDwHMnBWZRAycs34J uXXuEboF1CuyG0K+dvFazObO1QBP2VN2GnrwvHFEV2JS0kvTaWcisVV6BvB19KpZDvnH u8yKfh7CopF8Mkk/XlgxajYWIrfxnVNBggbMfcAR9WYDUfijhF8JP39fSox84i49Qr74 eKM8jD6v3hb4eguQdTucYGlZieOAHPP6CURuCUEXTB21O84bFZ2Dy8vpOBC3qFEADNNm DfyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=AF39Mn/Q6u4AQ9ysQrC/R164V1AvabPsCgZ3KzOMt0I=; b=j0k+sf84K61nDcKjsZfP29QNYs5DzVdW+IoCo2KexEBtRr15AsVB/CNbzXY23j0bNB d0w349O0xOCHJQzX+UZz5ThBHje8KB4+Updvn63kkbevpUtJKvEb9hP1iGJcM9ck3Qm8 +IsLWhr0NHrQ8goStkJtJX7vCyaz4L2dHlrYVtvRdqj46NLiqzCsu/0JnAC4bs8KNYT8 vYMLnyP/PLid2WKYP7+JSJHwxjLMCb4PnK0SQOcjvdoTNlJU8aH9SJBOtU+OQKGZtadk 0dZzjjQS+id66ngOcs86cdqVXWo1b5mem7ryMEcXnrV+BEnnWT2Gzxw2KoNAJ4U3n4dG iKIQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r59si4612895plb.368.2018.01.05.15.15.22; Fri, 05 Jan 2018 15:15:22 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753340AbeAEXPV (ORCPT + 6 others); Fri, 5 Jan 2018 18:15:21 -0500 Received: from mail-ot0-f195.google.com ([74.125.82.195]:35404 "EHLO mail-ot0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752268AbeAEXO1 (ORCPT ); Fri, 5 Jan 2018 18:14:27 -0500 Received: by mail-ot0-f195.google.com with SMTP id q5so5177690oth.2; Fri, 05 Jan 2018 15:14:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=jS0EDtKp3J7hEq++QbWurWbGjKfPAZ5R+EzwhkTQI1g=; b=h2Vqr/igY9Kl6IdebGBPAceGVU/j2QcEYiIEfOQrkHylj/aR8xv9jTMbYpSU6XZMPv tJOsGT7zgJXCw9YcHEPPJ9M1I06dgvWXi4Ft50fO8nmXwZ/Fb15DKswla58Ttt+B6r+y rrV9rJ/hc7cTjME72bmpoInJF3S7+JZxEdnSG4rCHAUBQ7e591cDLsXhgVCxA4WzacT2 ucdLSl0vjHljMax8mttcdDTXtx2+azO/xfj2pwEapUhDtLHh/VvOov1ugSgTyE+kw9VQ zWwp5teezUkqinpGTTxZKbxFKTQv5u7uF5AfWZng4N77rBUBJlXiKndCrYmfMNK+JXBY v68A== X-Gm-Message-State: AKwxytdL7S9h+YsaFEmjJ9T2Y6kNEsZSGqyzvEo6PzoC7lZRbWTlD2a+ ZUE4TB89DfxBztWJ4sjhc4/XSgg= X-Received: by 10.157.17.104 with SMTP id p37mr2783724otp.359.1515194066303; Fri, 05 Jan 2018 15:14:26 -0800 (PST) Received: from xps15.usacommunications.tv (216-188-254-6.dyn.grandenetworks.net. [216.188.254.6]) by smtp.googlemail.com with ESMTPSA id p24sm2824627oie.54.2018.01.05.15.14.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Jan 2018 15:14:25 -0800 (PST) From: Rob Herring To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Frank Rowand Subject: [PATCH 1/7] of/fdt: use memblock_virt_alloc for early alloc Date: Fri, 5 Jan 2018 17:14:18 -0600 Message-Id: <20180105231424.19247-2-robh@kernel.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180105231424.19247-1-robh@kernel.org> References: <20180105231424.19247-1-robh@kernel.org> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org memblock_virt_alloc() works for both memblock and bootmem, so use it and make early_init_dt_alloc_memory_arch a static function. The arches using bootmem define early_init_dt_alloc_memory_arch as either: __alloc_bootmem(size, align, __pa(MAX_DMA_ADDRESS)) or: alloc_bootmem_align(size, align) Both of these evaluate to the same thing as does memblock_virt_alloc for bootmem. So we can disable the arch specific functions by making early_init_dt_alloc_memory_arch static and they can be removed in subsequent commits. Cc: Frank Rowand Signed-off-by: Rob Herring --- drivers/of/fdt.c | 16 ++++------------ drivers/of/unittest.c | 11 ++++++++--- include/linux/of_fdt.h | 1 - 3 files changed, 12 insertions(+), 16 deletions(-) -- 2.14.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 4675e5ac4d11..444e65aa0d29 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -1183,14 +1184,6 @@ int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base, return memblock_reserve(base, size); } -/* - * called from unflatten_device_tree() to bootstrap devicetree itself - * Architectures can override this definition if memblock isn't used - */ -void * __init __weak early_init_dt_alloc_memory_arch(u64 size, u64 align) -{ - return __va(memblock_alloc(size, align)); -} #else void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size) { @@ -1209,13 +1202,12 @@ int __init __weak early_init_dt_reserve_memory_arch(phys_addr_t base, &base, &size, nomap ? " (nomap)" : ""); return -ENOSYS; } +#endif -void * __init __weak early_init_dt_alloc_memory_arch(u64 size, u64 align) +static void * __init early_init_dt_alloc_memory_arch(u64 size, u64 align) { - WARN_ON(1); - return NULL; + return memblock_virt_alloc(size, align); } -#endif bool __init early_init_dt_verify(void *params) { diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index 0f8052f1355c..7a9abaae874d 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -5,6 +5,7 @@ #define pr_fmt(fmt) "### dt-test ### " fmt +#include #include #include #include @@ -2053,6 +2054,11 @@ static struct overlay_info overlays[] = { static struct device_node *overlay_base_root; +static void * __init dt_alloc_memory(u64 size, u64 align) +{ + return memblock_virt_alloc(size, align); +} + /* * Create base device tree for the overlay unittest. * @@ -2092,8 +2098,7 @@ void __init unittest_unflatten_overlay_base(void) return; } - info->data = early_init_dt_alloc_memory_arch(size, - roundup_pow_of_two(FDT_V17_SIZE)); + info->data = dt_alloc_memory(size, roundup_pow_of_two(FDT_V17_SIZE)); if (!info->data) { pr_err("alloc for dtb 'overlay_base' failed"); return; @@ -2102,7 +2107,7 @@ void __init unittest_unflatten_overlay_base(void) memcpy(info->data, info->dtb_begin, size); __unflatten_device_tree(info->data, NULL, &info->np_overlay, - early_init_dt_alloc_memory_arch, true); + dt_alloc_memory, true); overlay_base_root = info->np_overlay; } diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index 444e6e283828..02c05028d0ba 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h @@ -83,7 +83,6 @@ extern void early_init_dt_add_memory_arch(u64 base, u64 size); extern int early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size); extern int early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size, bool no_map); -extern void * early_init_dt_alloc_memory_arch(u64 size, u64 align); extern u64 dt_mem_next_cell(int s, const __be32 **cellp); /* Early flat tree scan hooks */