Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965456AbcLVU5d (ORCPT ); Thu, 22 Dec 2016 15:57:33 -0500 Received: from mail.kernel.org ([198.145.29.136]:44088 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965359AbcLVU5c (ORCPT ); Thu, 22 Dec 2016 15:57:32 -0500 MIME-Version: 1.0 In-Reply-To: <1482113266-13207-2-git-send-email-fancer.lancer@gmail.com> References: <1482113266-13207-1-git-send-email-fancer.lancer@gmail.com> <1482113266-13207-2-git-send-email-fancer.lancer@gmail.com> From: Rob Herring Date: Thu, 22 Dec 2016 14:57:07 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 01/21] MIPS memblock: Unpin dts memblock sanity check method To: Serge Semin Cc: Ralf Baechle , Paul Burton , rabinv@axis.com, matt.redfearn@imgtec.com, James Hogan , Alexander Sverdlin , Frank Rowand , Sergey.Semin@t-platforms.ru, Linux-MIPS , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2042 Lines: 53 On Sun, Dec 18, 2016 at 8:07 PM, Serge Semin wrote: > It's necessary to check whether retrieved from dts memory regions > fits to page alignment and limits restrictions. Sometimes it is > necessary to perform the same checks, but ito add the memory regions s/ito/to/ > into a different subsystem. MIPS is going to be that case. > > Signed-off-by: Serge Semin > --- > drivers/of/fdt.c | 47 +++++++++++++++++++++++--------- > include/linux/of_fdt.h | 1 + > 2 files changed, 35 insertions(+), 13 deletions(-) > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > index 1f98156..1ee958f 100644 > --- a/drivers/of/fdt.c > +++ b/drivers/of/fdt.c > @@ -983,44 +983,65 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, > #define MAX_MEMBLOCK_ADDR ((phys_addr_t)~0) > #endif > > -void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size) > +int __init sanity_check_dt_memory(phys_addr_t *out_base, > + phys_addr_t *out_size) As kbuild robot found, you don't want to use phys_addr_t here. phys_addr_t varies with kernel config such as LPAE on ARM and the DT does not. > { > + phys_addr_t base = *out_base, size = *out_size; > const u64 phys_offset = MIN_MEMBLOCK_ADDR; > > if (!PAGE_ALIGNED(base)) { > if (size < PAGE_SIZE - (base & ~PAGE_MASK)) { > - pr_warn("Ignoring memory block 0x%llx - 0x%llx\n", > + pr_err("Memblock 0x%llx - 0x%llx isn't page aligned\n", These are not errors. The page alignment is an OS restriction. h/w (which the DT describes) generally has little concept of page size outside the MMUs. Too many unrelated changes in this patch. Add the error return only and make anything else a separate patch (though I would just drop everything else). I've not looked at the rest of the series, but why can't MIPS migrate to using memblock directly and using the default DT functions using memblock? Rob