From 8c3ee4a7c3d8daaf40a4e30bc1073c95729d8158 Mon Sep 17 00:00:00 2001 From: Naoya Horiguchi Date: Wed, 21 Mar 2012 16:34:27 -0700 Subject: [PATCH] --- yaml --- r: 292695 b: refs/heads/master c: d8c37c480678ebe09bc570f33e085e28049db035 h: refs/heads/master i: 292693: d10413cc229a2d5ffada1244bf544c4aa8bc32fd 292691: 35a581b3bf52f17be686c0e15bdf254696442c41 292687: d51b3015491e748b5eaae89ebbd3e4b458f06d68 v: v3 --- [refs] | 2 +- trunk/include/linux/huge_mm.h | 11 ++++++----- trunk/mm/pgtable-generic.c | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 7e70058c3b88..08c58e37f21b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d32ff84401f1addb961c7af2c8d9baceb0ab9ba +refs/heads/master: d8c37c480678ebe09bc570f33e085e28049db035 diff --git a/trunk/include/linux/huge_mm.h b/trunk/include/linux/huge_mm.h index f56cacb4fec3..c8af7a2efb52 100644 --- a/trunk/include/linux/huge_mm.h +++ b/trunk/include/linux/huge_mm.h @@ -51,6 +51,9 @@ extern pmd_t *page_check_address_pmd(struct page *page, unsigned long address, enum page_check_address_pmd_flag flag); +#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) +#define HPAGE_PMD_NR (1< MAX_ORDER #error "hugepages can't be allocated by the buddy allocator" #endif @@ -158,9 +159,9 @@ static inline struct page *compound_trans_head(struct page *page) return page; } #else /* CONFIG_TRANSPARENT_HUGEPAGE */ -#define HPAGE_PMD_SHIFT ({ BUG(); 0; }) -#define HPAGE_PMD_MASK ({ BUG(); 0; }) -#define HPAGE_PMD_SIZE ({ BUG(); 0; }) +#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) +#define HPAGE_PMD_MASK ({ BUILD_BUG(); 0; }) +#define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; }) #define hpage_nr_pages(x) 1 diff --git a/trunk/mm/pgtable-generic.c b/trunk/mm/pgtable-generic.c index eb663fb533e0..5a74fea182f1 100644 --- a/trunk/mm/pgtable-generic.c +++ b/trunk/mm/pgtable-generic.c @@ -70,10 +70,11 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) { int young; -#ifndef CONFIG_TRANSPARENT_HUGEPAGE +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + VM_BUG_ON(address & ~HPAGE_PMD_MASK); +#else BUG(); #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ - VM_BUG_ON(address & ~HPAGE_PMD_MASK); young = pmdp_test_and_clear_young(vma, address, pmdp); if (young) flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);