On Thu, Aug 13, 2020 at 11:55:21PM +0300, Mike Rapoport wrote: > From: Jessica Clarke <jrtc27@xxxxxxxxxx> > > IA-64 is special and treats pgd_offset_k() differently to pgd_offset(), > using different formulae to calculate the indices into the kernel and user > PGDs. The index into the user PGDs takes into account the region number, > but the index into the kernel (init_mm) PGD always assumes a predefined > kernel region number. Commit 974b9b2c68 ("mm: consolidate pte_index() and > pte_offset_*() definitions") made IA-64 use a generic pgd_offset_k() which > incorrectly used pgd_index() for kernel page tables. As a result, the > index into the kernel PGD was going out of bounds and the kernel hung > during early boot. > > Allow overrides of pgd_offset_k() and override it on IA-64 with the old > implementation that will correctly index the kernel PGD. > > Fixes: 974b9b2c68 ("mm: consolidate pte_index() and pte_offset_*() definitions") > Reported-by: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Jessica Clarke <jrtc27@xxxxxxxxxx> > Tested-by: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> > --- > Changes in v4: > * Correct the comment that I missed in v4 :( > > Changes since v3: > * Correct commit message as Jessica suggested > > Changes since v2: > * Rephrase commit message and comment about pgd_offset_k() > > Changes since v1: > * Fixed typo in commit message > * Slightly reworded commit message to sound less weird > * Included Adrian's Tested-by > arch/ia64/include/asm/pgtable.h | 9 +++++++++ > include/linux/pgtable.h | 2 ++ > 2 files changed, 11 insertions(+) I can take this via my tree if there are no objections. Tony? -- Sincerely yours, Mike.