]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm: add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
authorDaniel Kiper <dkiper@net-space.pl>
Wed, 25 May 2011 00:12:51 +0000 (17:12 -0700)
committerWilly Tarreau <w@1wt.eu>
Fri, 29 Jan 2016 21:12:58 +0000 (22:12 +0100)
commit a539f3533b78e39a22723d6d3e1e11b6c14454d9 upstream.

Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro which aligns given
pfn to upper section and lower section boundary accordingly.

Required for the latest memory hotplug support for the Xen balloon driver.

Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[wt: only needed for next patch]
Signed-off-by: Willy Tarreau <w@1wt.eu>
include/linux/mmzone.h

index 6c31a2a7c18d72194f7d197cb20263feb3f55936..0828194bf4e77b83519aca1465784c763cbea37e 100644 (file)
@@ -960,6 +960,12 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
 #error Allocator MAX_ORDER exceeds SECTION_SIZE
 #endif
 
+#define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
+#define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
+
+#define SECTION_ALIGN_UP(pfn)  (((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
+#define SECTION_ALIGN_DOWN(pfn)        ((pfn) & PAGE_SECTION_MASK)
+
 struct page;
 struct page_cgroup;
 struct mem_section {