summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kiper <dkiper@net-space.pl>2011-05-24 17:12:51 -0700
committerWilly Tarreau <w@1wt.eu>2016-01-29 22:12:58 +0100
commit73734375c75ef304e2b4629bc48af9031be6f672 (patch)
tree85a27a8c2a6717c24478b89b69fb797e7ac557bd
parent5a7fbabb106b0ba1b30921537f2e5928e153bdf3 (diff)
downloadlinux-stable-73734375c75ef304e2b4629bc48af9031be6f672.tar.gz
linux-stable-73734375c75ef304e2b4629bc48af9031be6f672.tar.bz2
linux-stable-73734375c75ef304e2b4629bc48af9031be6f672.zip
mm: add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
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>
-rw-r--r--include/linux/mmzone.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 6c31a2a7c18d..0828194bf4e7 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -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 {