|
@@ -682,6 +682,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;
|
|
@@ -700,18 +706,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
|
|
|
}
|
|
|
|
|
|
/*
|