Daniel Kiper
2011-May-02 21:20 UTC
[Xen-devel] [PATCH 2/4] mm: Enable set_page_section() only if CONFIG_SPARSEMEM and !CONFIG_SPARSEMEM_VMEMMAP
set_page_section() is valid only in CONFIG_SPARSEMEM and !CONFIG_SPARSEMEM_VMEMMAP context. Move it to proper place and amend accordingly functions which are using it. Signed-off-by: Daniel Kiper <dkiper@net-space.pl> --- include/linux/mm.h | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 692dbae..23465e1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -680,6 +680,12 @@ static inline struct zone *page_zone(struct page *page) } #if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) +static inline void set_page_section(struct page *page, unsigned long section) +{ + page->flags &= ~(SECTIONS_MASK << SECTIONS_PGSHIFT); + page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT; +} + static inline unsigned long page_to_section(struct page *page) { return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK; @@ -698,18 +704,14 @@ static inline void set_page_node(struct page *page, unsigned long node) page->flags |= (node & NODES_MASK) << NODES_PGSHIFT; } -static inline void set_page_section(struct page *page, unsigned long section) -{ - page->flags &= ~(SECTIONS_MASK << SECTIONS_PGSHIFT); - page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT; -} - static inline void set_page_links(struct page *page, enum zone_type zone, unsigned long node, unsigned long pfn) { set_page_zone(page, zone); set_page_node(page, node); +#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) set_page_section(page, pfn_to_section_nr(pfn)); +#endif } /* -- 1.5.6.5 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dave Hansen
2011-May-02 22:50 UTC
[Xen-devel] Re: [PATCH 2/4] mm: Enable set_page_section() only if CONFIG_SPARSEMEM and !CONFIG_SPARSEMEM_VMEMMAP
On Mon, 2011-05-02 at 23:20 +0200, Daniel Kiper wrote:> set_page_section() is valid only in CONFIG_SPARSEMEM and > !CONFIG_SPARSEMEM_VMEMMAP context. Move it to proper place > and amend accordingly functions which are using it.I guess we''ve been wasting all that time setting section bits in page->flags that we''ll never use. Looks sane to me. Acked-by: Dave Hansen <dave@linux.vnet.ibm.com> -- Dave _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
David Rientjes
2011-May-11 23:10 UTC
[Xen-devel] Re: [PATCH 2/4] mm: Enable set_page_section() only if CONFIG_SPARSEMEM and !CONFIG_SPARSEMEM_VMEMMAP
On Mon, 2 May 2011, Daniel Kiper wrote:> set_page_section() is valid only in CONFIG_SPARSEMEM and > !CONFIG_SPARSEMEM_VMEMMAP context.s/valid/needed/. set_page_section() _is_ valid in all contexts since SECTIONS_MASK and SECTIONS_PGSHIFT is defined in all contexts.> Move it to proper place > and amend accordingly functions which are using it. > > Signed-off-by: Daniel Kiper <dkiper@net-space.pl>After the changelog is fixed: Acked-by: David Rientjes <rientjes@google.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel