Skip to content

Commit 9899b58

Browse files
committed
Merge tag 'fixes-2020-08-18' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock
Pull ia64 page table fix from Mike Rapoport: "Fix regression in IA-64 caused by page table allocation refactoring The refactoring and consolidation of <asm/pgalloc.h> caused regression on parisc and ia64. The fix for parisc made it into v5.9-rc1 while the fix ia64 got delayed a bit and here it is" * tag 'fixes-2020-08-18' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock: arch/ia64: Restore arch-specific pgd_offset_k implementation
2 parents b7333b5 + bd05220 commit 9899b58

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

arch/ia64/include/asm/pgtable.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,15 @@ pgd_index (unsigned long address)
366366
}
367367
#define pgd_index pgd_index
368368

369+
/*
370+
* In the kernel's mapped region we know everything is in region number 5, so
371+
* as an optimisation its PGD already points to the area for that region.
372+
* However, this also means that we cannot use pgd_index() and we must
373+
* never add the region here.
374+
*/
375+
#define pgd_offset_k(addr) \
376+
(init_mm.pgd + (((addr) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)))
377+
369378
/* Look up a pgd entry in the gate area. On IA-64, the gate-area
370379
resides in the kernel-mapped segment, hence we use pgd_offset_k()
371380
here. */

include/linux/pgtable.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ static inline pgd_t *pgd_offset_pgd(pgd_t *pgd, unsigned long address)
117117
* a shortcut which implies the use of the kernel's pgd, instead
118118
* of a process's
119119
*/
120+
#ifndef pgd_offset_k
120121
#define pgd_offset_k(address) pgd_offset(&init_mm, (address))
122+
#endif
121123

122124
/*
123125
* In many cases it is known that a virtual address is mapped at PMD or PTE

0 commit comments

Comments
 (0)