Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Hugetlb pgtable cache access cleanup

Andrew Morton suggested that using a macro that makes an array
reference look like a function call makes it harder to understand the
code.

This therefore removes the huge_pgtable_cache(psize) macro and
replaces its uses with pgtable_cache[HUGE_PGTABLE_INDEX(psize)].

Signed-off-by: Jon Tollefson <kniht@linux.vnet.ibm.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by

Jon Tollefson and committed by
Paul Mackerras
7d4320f3 d4ad3048

+11 -11
+11 -11
arch/powerpc/mm/hugetlbpage.c
··· 53 53 54 54 /* Subtract one from array size because we don't need a cache for 4K since 55 55 * is not a huge page size */ 56 - #define huge_pgtable_cache(psize) (pgtable_cache[HUGEPTE_CACHE_NUM \ 57 - + psize-1]) 56 + #define HUGE_PGTABLE_INDEX(psize) (HUGEPTE_CACHE_NUM + psize - 1) 58 57 #define HUGEPTE_CACHE_NAME(psize) (huge_pgtable_cache_name[psize]) 59 58 60 59 static const char *huge_pgtable_cache_name[MMU_PAGE_COUNT] = { ··· 112 113 static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp, 113 114 unsigned long address, unsigned int psize) 114 115 { 115 - pte_t *new = kmem_cache_zalloc(huge_pgtable_cache(psize), 116 + pte_t *new = kmem_cache_zalloc(pgtable_cache[HUGE_PGTABLE_INDEX(psize)], 116 117 GFP_KERNEL|__GFP_REPEAT); 117 118 118 119 if (! new) ··· 120 121 121 122 spin_lock(&mm->page_table_lock); 122 123 if (!hugepd_none(*hpdp)) 123 - kmem_cache_free(huge_pgtable_cache(psize), new); 124 + kmem_cache_free(pgtable_cache[HUGE_PGTABLE_INDEX(psize)], new); 124 125 else 125 126 hpdp->pd = (unsigned long)new | HUGEPD_OK; 126 127 spin_unlock(&mm->page_table_lock); ··· 759 760 760 761 for (psize = 0; psize < MMU_PAGE_COUNT; ++psize) { 761 762 if (mmu_huge_psizes[psize]) { 762 - huge_pgtable_cache(psize) = kmem_cache_create( 763 - HUGEPTE_CACHE_NAME(psize), 764 - HUGEPTE_TABLE_SIZE(psize), 765 - HUGEPTE_TABLE_SIZE(psize), 766 - 0, 767 - NULL); 768 - if (!huge_pgtable_cache(psize)) 763 + pgtable_cache[HUGE_PGTABLE_INDEX(psize)] = 764 + kmem_cache_create( 765 + HUGEPTE_CACHE_NAME(psize), 766 + HUGEPTE_TABLE_SIZE(psize), 767 + HUGEPTE_TABLE_SIZE(psize), 768 + 0, 769 + NULL); 770 + if (!pgtable_cache[HUGE_PGTABLE_INDEX(psize)]) 769 771 panic("hugetlbpage_init(): could not create %s"\ 770 772 "\n", HUGEPTE_CACHE_NAME(psize)); 771 773 }