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
This commit is contained in:
@@ -366,6 +366,15 @@ pgd_index (unsigned long address)
|
||||
}
|
||||
#define pgd_index pgd_index
|
||||
|
||||
/*
|
||||
* In the kernel's mapped region we know everything is in region number 5, so
|
||||
* as an optimisation its PGD already points to the area for that region.
|
||||
* However, this also means that we cannot use pgd_index() and we must
|
||||
* never add the region here.
|
||||
*/
|
||||
#define pgd_offset_k(addr) \
|
||||
(init_mm.pgd + (((addr) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)))
|
||||
|
||||
/* Look up a pgd entry in the gate area. On IA-64, the gate-area
|
||||
resides in the kernel-mapped segment, hence we use pgd_offset_k()
|
||||
here. */
|
||||
|
||||
@@ -117,7 +117,9 @@ static inline pgd_t *pgd_offset_pgd(pgd_t *pgd, unsigned long address)
|
||||
* a shortcut which implies the use of the kernel's pgd, instead
|
||||
* of a process's
|
||||
*/
|
||||
#ifndef pgd_offset_k
|
||||
#define pgd_offset_k(address) pgd_offset(&init_mm, (address))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* In many cases it is known that a virtual address is mapped at PMD or PTE
|
||||
|
||||
Reference in New Issue
Block a user