Re: [patch] mips, mm: avoid using HPAGE constants without CONFIG_HUGETLB_PAGE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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__



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux