Skip to content

Commit 9cf6fa2

Browse files
kvaneeshtorvalds
authored andcommitted
mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t *
No functional change in this patch. [[email protected]: fix] Link: https://lkml.kernel.org/r/[email protected] [[email protected]: another fix] Link: https://lkml.kernel.org/r/[email protected] Link: https://lkml.kernel.org/r/[email protected] Link: https://lore.kernel.org/linuxppc-dev/CAHk-=wi+J+iodze9FtjM3Zi4j4OeS+qqbKxME9QN4roxPEXH9Q@mail.gmail.com/ Signed-off-by: Aneesh Kumar K.V <[email protected]> Signed-off-by: Stephen Rothwell <[email protected]> Cc: Christophe Leroy <[email protected]> Cc: Hugh Dickins <[email protected]> Cc: Joel Fernandes <[email protected]> Cc: Kalesh Singh <[email protected]> Cc: Kirill A. Shutemov <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Stephen Rothwell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 44e8a5e commit 9cf6fa2

File tree

22 files changed

+46
-36
lines changed

22 files changed

+46
-36
lines changed

arch/alpha/include/asm/pgtable.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,10 @@ pmd_page_vaddr(pmd_t pmd)
236236
#define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> 32))
237237
#define pud_page(pud) (pfn_to_page(pud_val(pud) >> 32))
238238

239-
extern inline unsigned long pud_page_vaddr(pud_t pgd)
240-
{ return PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT)); }
239+
extern inline pmd_t *pud_pgtable(pud_t pgd)
240+
{
241+
return (pmd_t *)(PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT)));
242+
}
241243

242244
extern inline int pte_none(pte_t pte) { return !pte_val(pte); }
243245
extern inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_VALID; }
@@ -287,7 +289,7 @@ extern inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= __ACCESS_BITS; retu
287289
/* Find an entry in the second-level page table.. */
288290
extern inline pmd_t * pmd_offset(pud_t * dir, unsigned long address)
289291
{
290-
pmd_t *ret = (pmd_t *) pud_page_vaddr(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1));
292+
pmd_t *ret = pud_pgtable(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1));
291293
smp_rmb(); /* see above */
292294
return ret;
293295
}

arch/arm/include/asm/pgtable-3level.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@
130130
flush_pmd_entry(pudp); \
131131
} while (0)
132132

133-
static inline pmd_t *pud_page_vaddr(pud_t pud)
133+
static inline pmd_t *pud_pgtable(pud_t pud)
134134
{
135135
return __va(pud_val(pud) & PHYS_MASK & (s32)PAGE_MASK);
136136
}

arch/arm64/include/asm/pgtable.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,9 +649,9 @@ static inline phys_addr_t pud_page_paddr(pud_t pud)
649649
return __pud_to_phys(pud);
650650
}
651651

652-
static inline unsigned long pud_page_vaddr(pud_t pud)
652+
static inline pmd_t *pud_pgtable(pud_t pud)
653653
{
654-
return (unsigned long)__va(pud_page_paddr(pud));
654+
return (pmd_t *)__va(pud_page_paddr(pud));
655655
}
656656

657657
/* Find an entry in the second-level page table. */

arch/ia64/include/asm/pgtable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ ia64_phys_addr_valid (unsigned long addr)
273273
#define pud_bad(pud) (!ia64_phys_addr_valid(pud_val(pud)))
274274
#define pud_present(pud) (pud_val(pud) != 0UL)
275275
#define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)
276-
#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & _PFN_MASK))
276+
#define pud_pgtable(pud) ((pmd_t *) __va(pud_val(pud) & _PFN_MASK))
277277
#define pud_page(pud) virt_to_page((pud_val(pud) + PAGE_OFFSET))
278278

279279
#if CONFIG_PGTABLE_LEVELS == 4

arch/m68k/include/asm/motorola_pgtable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ static inline void pud_set(pud_t *pudp, pmd_t *pmdp)
131131

132132
#define __pte_page(pte) ((unsigned long)__va(pte_val(pte) & PAGE_MASK))
133133
#define pmd_page_vaddr(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK))
134-
#define pud_page_vaddr(pud) ((unsigned long)__va(pud_val(pud) & _TABLE_MASK))
134+
#define pud_pgtable(pud) ((pmd_t *)__va(pud_val(pud) & _TABLE_MASK))
135135

136136

137137
#define pte_none(pte) (!pte_val(pte))

arch/mips/include/asm/pgtable-64.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,9 +313,9 @@ static inline void pud_clear(pud_t *pudp)
313313
#endif
314314

315315
#ifndef __PAGETABLE_PMD_FOLDED
316-
static inline unsigned long pud_page_vaddr(pud_t pud)
316+
static inline pmd_t *pud_pgtable(pud_t pud)
317317
{
318-
return pud_val(pud);
318+
return (pmd_t *)pud_val(pud);
319319
}
320320
#define pud_phys(pud) virt_to_phys((void *)pud_val(pud))
321321
#define pud_page(pud) (pfn_to_page(pud_phys(pud) >> PAGE_SHIFT))

arch/parisc/include/asm/pgtable.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,8 @@ static inline void pmd_clear(pmd_t *pmd) {
322322

323323

324324
#if CONFIG_PGTABLE_LEVELS == 3
325-
#define pud_page_vaddr(pud) ((unsigned long) __va(pud_address(pud)))
326-
#define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud))
325+
#define pud_pgtable(pud) ((pmd_t *) __va(pud_address(pud)))
326+
#define pud_page(pud) virt_to_page((void *)pud_pgtable(pud))
327327

328328
/* For 64 bit we have three level tables */
329329

arch/powerpc/include/asm/book3s/64/pgtable.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1051,9 +1051,13 @@ extern struct page *p4d_page(p4d_t p4d);
10511051
/* Pointers in the page table tree are physical addresses */
10521052
#define __pgtable_ptr_val(ptr) __pa(ptr)
10531053

1054-
#define pud_page_vaddr(pud) __va(pud_val(pud) & ~PUD_MASKED_BITS)
10551054
#define p4d_page_vaddr(p4d) __va(p4d_val(p4d) & ~P4D_MASKED_BITS)
10561055

1056+
static inline pmd_t *pud_pgtable(pud_t pud)
1057+
{
1058+
return (pmd_t *)__va(pud_val(pud) & ~PUD_MASKED_BITS);
1059+
}
1060+
10571061
#define pte_ERROR(e) \
10581062
pr_err("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
10591063
#define pmd_ERROR(e) \

arch/powerpc/include/asm/nohash/64/pgtable.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,11 @@ static inline void pud_clear(pud_t *pudp)
162162
#define pud_bad(pud) (!is_kernel_addr(pud_val(pud)) \
163163
|| (pud_val(pud) & PUD_BAD_BITS))
164164
#define pud_present(pud) (pud_val(pud) != 0)
165-
#define pud_page_vaddr(pud) (pud_val(pud) & ~PUD_MASKED_BITS)
165+
166+
static inline pmd_t *pud_pgtable(pud_t pud)
167+
{
168+
return (pmd_t *)(pud_val(pud) & ~PUD_MASKED_BITS);
169+
}
166170

167171
extern struct page *pud_page(pud_t pud);
168172

arch/powerpc/mm/book3s64/radix_pgtable.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
820820
continue;
821821
}
822822

823-
pmd_base = (pmd_t *)pud_page_vaddr(*pud);
823+
pmd_base = pud_pgtable(*pud);
824824
remove_pmd_table(pmd_base, addr, next);
825825
free_pmd_table(pmd_base, pud);
826826
}
@@ -1105,7 +1105,7 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
11051105
pmd_t *pmd;
11061106
int i;
11071107

1108-
pmd = (pmd_t *)pud_page_vaddr(*pud);
1108+
pmd = pud_pgtable(*pud);
11091109
pud_clear(pud);
11101110

11111111
flush_tlb_kernel_range(addr, addr + PUD_SIZE);

arch/powerpc/mm/pgtable_64.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ struct page *pud_page(pud_t pud)
115115
VM_WARN_ON(!pud_huge(pud));
116116
return pte_page(pud_pte(pud));
117117
}
118-
return virt_to_page(pud_page_vaddr(pud));
118+
return virt_to_page(pud_pgtable(pud));
119119
}
120120

121121
/*

arch/riscv/include/asm/pgtable-64.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ static inline void pud_clear(pud_t *pudp)
6060
set_pud(pudp, __pud(0));
6161
}
6262

63-
static inline unsigned long pud_page_vaddr(pud_t pud)
63+
static inline pmd_t *pud_pgtable(pud_t pud)
6464
{
65-
return (unsigned long)pfn_to_virt(pud_val(pud) >> _PAGE_PFN_SHIFT);
65+
return (pmd_t *)pfn_to_virt(pud_val(pud) >> _PAGE_PFN_SHIFT);
6666
}
6767

6868
static inline struct page *pud_page(pud_t pud)

arch/sh/include/asm/pgtable-3level.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ typedef struct { unsigned long long pmd; } pmd_t;
3232
#define pmd_val(x) ((x).pmd)
3333
#define __pmd(x) ((pmd_t) { (x) } )
3434

35-
static inline unsigned long pud_page_vaddr(pud_t pud)
35+
static inline pmd_t *pud_pgtable(pud_t pud)
3636
{
37-
return pud_val(pud);
37+
return (pmd_t *)pud_val(pud);
3838
}
3939

4040
/* only used by the stubbed out hugetlb gup code, should never be called */

arch/sparc/include/asm/pgtable_32.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)
151151
return (unsigned long)__nocache_va(v << 4);
152152
}
153153

154-
static inline unsigned long pud_page_vaddr(pud_t pud)
154+
static inline pmd_t *pud_pgtable(pud_t pud)
155155
{
156156
if (srmmu_device_memory(pud_val(pud))) {
157-
return ~0;
157+
return (pmd_t *)~0;
158158
} else {
159159
unsigned long v = pud_val(pud) & SRMMU_PTD_PMASK;
160-
return (unsigned long)__nocache_va(v << 4);
160+
return (pmd_t *)__nocache_va(v << 4);
161161
}
162162
}
163163

arch/sparc/include/asm/pgtable_64.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -841,18 +841,18 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd)
841841
return ((unsigned long) __va(pfn << PAGE_SHIFT));
842842
}
843843

844-
static inline unsigned long pud_page_vaddr(pud_t pud)
844+
static inline pmd_t *pud_pgtable(pud_t pud)
845845
{
846846
pte_t pte = __pte(pud_val(pud));
847847
unsigned long pfn;
848848

849849
pfn = pte_pfn(pte);
850850

851-
return ((unsigned long) __va(pfn << PAGE_SHIFT));
851+
return ((pmd_t *) __va(pfn << PAGE_SHIFT));
852852
}
853853

854854
#define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd))
855-
#define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud))
855+
#define pud_page(pud) virt_to_page((void *)pud_pgtable(pud))
856856
#define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL)
857857
#define pud_present(pud) (pud_val(pud) != 0U)
858858
#define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)

arch/um/include/asm/pgtable-3level.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ static inline void pud_clear (pud_t *pud)
8383
}
8484

8585
#define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK)
86-
#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PAGE_MASK))
86+
#define pud_pgtable(pud) ((pmd_t *) __va(pud_val(pud) & PAGE_MASK))
8787

8888
static inline unsigned long pte_pfn(pte_t pte)
8989
{

arch/x86/include/asm/pgtable.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -836,9 +836,9 @@ static inline int pud_present(pud_t pud)
836836
return pud_flags(pud) & _PAGE_PRESENT;
837837
}
838838

839-
static inline unsigned long pud_page_vaddr(pud_t pud)
839+
static inline pmd_t *pud_pgtable(pud_t pud)
840840
{
841-
return (unsigned long)__va(pud_val(pud) & pud_pfn_mask(pud));
841+
return (pmd_t *)__va(pud_val(pud) & pud_pfn_mask(pud));
842842
}
843843

844844
/*

arch/x86/mm/pat/set_memory.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,7 @@ static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd,
11341134
unsigned long start, unsigned long end)
11351135
{
11361136
if (unmap_pte_range(pmd, start, end))
1137-
if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud)))
1137+
if (try_to_free_pmd_page(pud_pgtable(*pud)))
11381138
pud_clear(pud);
11391139
}
11401140

@@ -1178,7 +1178,7 @@ static void unmap_pmd_range(pud_t *pud, unsigned long start, unsigned long end)
11781178
* Try again to free the PMD page if haven't succeeded above.
11791179
*/
11801180
if (!pud_none(*pud))
1181-
if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud)))
1181+
if (try_to_free_pmd_page(pud_pgtable(*pud)))
11821182
pud_clear(pud);
11831183
}
11841184

arch/x86/mm/pgtable.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
801801
pte_t *pte;
802802
int i;
803803

804-
pmd = (pmd_t *)pud_page_vaddr(*pud);
804+
pmd = pud_pgtable(*pud);
805805
pmd_sv = (pmd_t *)__get_free_page(GFP_KERNEL);
806806
if (!pmd_sv)
807807
return 0;

include/asm-generic/pgtable-nopmd.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address)
5151
#define __pmd(x) ((pmd_t) { __pud(x) } )
5252

5353
#define pud_page(pud) (pmd_page((pmd_t){ pud }))
54-
#define pud_page_vaddr(pud) (pmd_page_vaddr((pmd_t){ pud }))
54+
#define pud_pgtable(pud) ((pmd_t *)(pmd_page_vaddr((pmd_t){ pud })))
5555

5656
/*
5757
* allocating and freeing a pmd is trivial: the 1-entry pmd is

include/asm-generic/pgtable-nopud.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
4949
#define __pud(x) ((pud_t) { __p4d(x) })
5050

5151
#define p4d_page(p4d) (pud_page((pud_t){ p4d }))
52-
#define p4d_page_vaddr(p4d) (pud_page_vaddr((pud_t){ p4d }))
52+
#define p4d_page_vaddr(p4d) (pud_pgtable((pud_t){ p4d }))
5353

5454
/*
5555
* allocating and freeing a pud is trivial: the 1-entry pud is

include/linux/pgtable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static inline pte_t *pte_offset_kernel(pmd_t *pmd, unsigned long address)
106106
#ifndef pmd_offset
107107
static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
108108
{
109-
return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(address);
109+
return pud_pgtable(*pud) + pmd_index(address);
110110
}
111111
#define pmd_offset pmd_offset
112112
#endif

0 commit comments

Comments
 (0)