Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752437AbdDJQbk (ORCPT ); Mon, 10 Apr 2017 12:31:40 -0400 Received: from mx2.suse.de ([195.135.220.15]:45987 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751275AbdDJQbj (ORCPT ); Mon, 10 Apr 2017 12:31:39 -0400 Date: Mon, 10 Apr 2017 18:31:34 +0200 From: Michal Hocko To: Jerome Glisse Cc: linux-mm@kvack.org, Andrew Morton , Mel Gorman , Vlastimil Babka , Andrea Arcangeli , Reza Arbab , Yasuaki Ishimatsu , qiuxishi@huawei.com, Kani Toshimitsu , slaoub@gmail.com, Joonsoo Kim , Andi Kleen , David Rientjes , Daniel Kiper , Igor Mammedov , Vitaly Kuznetsov , LKML , Dan Williams Subject: Re: [PATCH 4/9] mm, memory_hotplug: get rid of is_zone_device_section Message-ID: <20170410163133.GN4618@dhcp22.suse.cz> References: <20170410110351.12215-1-mhocko@kernel.org> <20170410110351.12215-5-mhocko@kernel.org> <20170410162002.GA31356@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170410162002.GA31356@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2619 Lines: 86 On Mon 10-04-17 12:20:02, Jerome Glisse wrote: > On Mon, Apr 10, 2017 at 01:03:46PM +0200, Michal Hocko wrote: [...] > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > > index 342332f29364..1570b3eea493 100644 > > --- a/mm/memory_hotplug.c > > +++ b/mm/memory_hotplug.c > > @@ -493,7 +493,7 @@ static int __meminit __add_zone(struct zone *zone, unsigned long phys_start_pfn) > > } > > > > static int __meminit __add_section(int nid, struct zone *zone, > > - unsigned long phys_start_pfn) > > + unsigned long phys_start_pfn, bool want_memblock) > > { > > int ret; > > > > @@ -510,7 +510,10 @@ static int __meminit __add_section(int nid, struct zone *zone, > > if (ret < 0) > > return ret; > > > > - return register_new_memory(nid, __pfn_to_section(phys_start_pfn)); > > + if (want_memblock) > > + ret = register_new_memory(nid, __pfn_to_section(phys_start_pfn)); > > + > > + return ret; > > } > > The above is wrong for ZONE_DEVICE sparse_add_one_section() will return a > positive value (on success) thus ret > 0 and other function in the hotplug > path will interpret positive value as an error. > > I suggest something like: > if (!want_memblock) > return 0; > > return register_new_memory(nid, __pfn_to_section(phys_start_pfn)); > } You are right! I will fold the following. Thanks! --- >From cc44b4a465b889910e74b3ccc2d12f4dd1c79065 Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Mon, 10 Apr 2017 18:29:11 +0200 Subject: [PATCH] fold me "mm, memory_hotplug: get rid of is_zone_device_section" - return 0 want_memblock == 0 from __add_section as per Jerome Glisse --- mm/memory_hotplug.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 035165ceefef..9942d8937d0a 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -299,7 +299,8 @@ void __init register_page_bootmem_info_node(struct pglist_data *pgdat) } #endif /* CONFIG_HAVE_BOOTMEM_INFO_NODE */ -static int __meminit __add_section(int nid, unsigned long phys_start_pfn, bool want_memblock) +static int __meminit __add_section(int nid, unsigned long phys_start_pfn, + bool want_memblock) { int ret; int i; @@ -328,10 +329,10 @@ static int __meminit __add_section(int nid, unsigned long phys_start_pfn, bool w SetPageReserved(page); } - if (want_memblock) - ret = register_new_memory(nid, __pfn_to_section(phys_start_pfn)); + if (!want_memblock) + return 0 - return ret; + return register_new_memory(nid, __pfn_to_section(phys_start_pfn)); } /* -- 2.11.0 -- Michal Hocko SUSE Labs