arch/x86/xen/setup.c | 5 +++-- include/linux/minmax.h | 7 +++++++ include/linux/pageblock-flags.h | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index a0c3e77e3d5b..806ddb2391d9 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -690,6 +690,7 @@ char * __init xen_memory_setup(void) struct xen_memory_map memmap; unsigned long max_pages; unsigned long extra_pages = 0; + unsigned long maxmem_pages; int i; int op; @@ -761,8 +762,8 @@ char * __init xen_memory_setup(void) * Make sure we have no memory above max_pages, as this area * isn't handled by the p2m management. */ - extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), - extra_pages, max_pages - max_pfn); + maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); + extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); i = 0; addr = xen_e820_table.entries[0].addr; size = xen_e820_table.entries[0].size; diff --git a/include/linux/minmax.h b/include/linux/minmax.h index 2ec559284a9f..5e0c02a87d08 100644 --- a/include/linux/minmax.h +++ b/include/linux/minmax.h @@ -7,6 +7,13 @@ #include #include +/* + * Use these carefully: no type checking, and uses the arguments + * multiple times. Use for obvious constants only. + */ +#define CONST_MIN(a,b) ((a)<(b)?(a):(b)) +#define CONST_MAX(a,b) ((a)>(b)?(a):(b)) + /* * min()/max()/clamp() macros must accomplish three things: * diff --git a/include/linux/pageblock-flags.h b/include/linux/pageblock-flags.h index 547e82cdc89a..ce1b7c4d57e2 100644 --- a/include/linux/pageblock-flags.h +++ b/include/linux/pageblock-flags.h @@ -41,13 +41,13 @@ extern unsigned int pageblock_order; * Huge pages are a constant size, but don't exceed the maximum allocation * granularity. */ -#define pageblock_order min_t(unsigned int, HUGETLB_PAGE_ORDER, MAX_PAGE_ORDER) +#define pageblock_order ((unsigned int)CONST_MIN(HUGETLB_PAGE_ORDER, MAX_PAGE_ORDER)) #endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */ #elif defined(CONFIG_TRANSPARENT_HUGEPAGE) -#define pageblock_order min_t(unsigned int, HPAGE_PMD_ORDER, MAX_PAGE_ORDER) +#define pageblock_order ((unsigned int)CONST_MIN(HPAGE_PMD_ORDER, MAX_PAGE_ORDER)) #else /* CONFIG_TRANSPARENT_HUGEPAGE */