Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755912AbYBLWPd (ORCPT ); Tue, 12 Feb 2008 17:15:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751368AbYBLWPZ (ORCPT ); Tue, 12 Feb 2008 17:15:25 -0500 Received: from e3.ny.us.ibm.com ([32.97.182.143]:45137 "EHLO e3.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751302AbYBLWPX (ORCPT ); Tue, 12 Feb 2008 17:15:23 -0500 Subject: Re: [-mm PATCH] register_memory/unregister_memory clean ups From: Dave Hansen To: Badari Pulavarty Cc: Yasunori Goto , KAMEZAWA Hiroyuki , Andrew Morton , lkml , greg@kroah.com, linux-mm In-Reply-To: <1202854031.25604.62.camel@dyn9047017100.beaverton.ibm.com> References: <20080211114818.74c9dcc7.akpm@linux-foundation.org> <1202765553.25604.12.camel@dyn9047017100.beaverton.ibm.com> <20080212154309.F9DA.Y-GOTO@jp.fujitsu.com> <1202836953.25604.42.camel@dyn9047017100.beaverton.ibm.com> <1202849972.11188.71.camel@nimitz.home.sr71.net> <1202853415.25604.59.camel@dyn9047017100.beaverton.ibm.com> <1202853434.11188.76.camel@nimitz.home.sr71.net> <1202854031.25604.62.camel@dyn9047017100.beaverton.ibm.com> Content-Type: text/plain Date: Tue, 12 Feb 2008 14:15:20 -0800 Message-Id: <1202854520.11188.90.camel@nimitz.home.sr71.net> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1285 Lines: 37 On Tue, 2008-02-12 at 14:07 -0800, Badari Pulavarty wrote: > On Tue, 2008-02-12 at 13:57 -0800, Dave Hansen wrote: > > On Tue, 2008-02-12 at 13:56 -0800, Badari Pulavarty wrote: > > > > > > +static void __remove_section(struct zone *zone, unsigned long > > > section_nr) > > > +{ > > > + if (!valid_section_nr(section_nr)) > > > + return; > > > + > > > + unregister_memory_section(__nr_to_section(section_nr)); > > > + sparse_remove_one_section(zone, section_nr); > > > +} > > > > I do think passing in a mem_section* here is highly superior. It makes > > it impossible to pass a pfn in and not get a warning. > > > > Only problem is, I need to hold pgdat_resize_lock() if pass *ms. > If I don't hold the resize_lock, I have to re-evaluate. What's wrong with holding the resize lock? What races, precisely, are you trying to avoid? > And also, > I need to pass section_nr for decoding the mem_map anyway :( See sparse.c::__section_nr(). It takes a mem_section* and returns a section_nr. -- Dave -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/