with David Daney Cced On Sun, Nov 20, 2011 at 10:56 AM, David Rientjes <rientjes@xxxxxxxxxx> wrote: > HPAGE_{MASK,SHIFT,SIZE} are only defined with CONFIG_HUGETLB_PAGE, so > make sure to never use them unless that option is enabled. > > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> > --- > arch/mips/mm/tlb-r4k.c | 13 ++++++++----- > 1 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c > --- a/arch/mips/mm/tlb-r4k.c > +++ b/arch/mips/mm/tlb-r4k.c > @@ -124,9 +124,11 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, > > ENTER_CRITICAL(flags); > if (huge) { > +#ifdef CONFIG_HUGETLB_PAGE > start = round_down(start, HPAGE_SIZE); > end = round_up(end, HPAGE_SIZE); > size = (end - start) >> HPAGE_SHIFT; > +#endif > } else { > start = round_down(start, PAGE_SIZE << 1); > end = round_up(end, PAGE_SIZE << 1); > @@ -135,15 +137,16 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, > if (size <= current_cpu_data.tlbsize/2) { > int oldpid = read_c0_entryhi(); > int newpid = cpu_asid(cpu, mm); > + unsigned long incr = PAGE_SIZE << 1; > > - while (start < end) { > +#ifdef CONFIG_HUGETLB_PAGE > + if (huge) > + incr = HPAGE_SIZE; > +#endif > + for (; start < end; start += incr) { Here huge is included in #ifdef, but not the above huge, so readers a bit confused. The following diff is what I mean. Best regards Hillf --- --- a/arch/mips/include/asm/page.h Sun Nov 20 13:08:44 2011 +++ b/arch/mips/include/asm/page.h Sun Nov 20 13:17:43 2011 @@ -38,6 +38,11 @@ #define HPAGE_SIZE (_AC(1,UL) << HPAGE_SHIFT) #define HPAGE_MASK (~(HPAGE_SIZE - 1)) #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) +#else +#define HPAGE_SHIFT ({ BUG(); 0; }) +#define HPAGE_SIZE ({ BUG(); 0; }) +#define HPAGE_MASK ({ BUG(); 0; }) +#define HUGETLB_PAGE_ORDER ({ BUG(); 0; }) #endif /* CONFIG_HUGETLB_PAGE */ #ifndef __ASSEMBLY__