mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
sparc32: fix page table traversal in srmmu_nocache_init()
The srmmu_nocache_init() uses __nocache_fix() macro to add an offset to
page table entry to access srmmu_nocache_pool.
But since sparc32 has only three actual page table levels, pgd, p4d and
pud are essentially the same thing and pgd_offset() and p4d_offset() are
no-ops, the __nocache_fix() should be done only at PUD level.
Remove __nocache_fix() for p4d_offset() and pud_offset() and keep it
only for PUD and lower levels.
Fixes: c2bc26f7ca ("sparc32: use PUD rather than PGD to get PMD in srmmu_nocache_init()")
Signed-off-by: Mike Rapoport <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Anatoly Pugachev <[email protected]>
Cc: <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
1 parent
423b8baf18
commit
0cfc8a8d70
1 file changed
+2
-2
@@ -331,8 +331,8 @@ static void __init srmmu_nocache_init(void)
|
||||
|
||||
while (vaddr < srmmu_nocache_end) {
|
||||
pgd = pgd_offset_k(vaddr);
|
||||
p4d = p4d_offset(__nocache_fix(pgd), vaddr);
|
||||
pud = pud_offset(__nocache_fix(p4d), vaddr);
|
||||
p4d = p4d_offset(pgd, vaddr);
|
||||
pud = pud_offset(p4d, vaddr);
|
||||
pmd = pmd_offset(__nocache_fix(pud), vaddr);
|
||||
pte = pte_offset_kernel(__nocache_fix(pmd), vaddr);
|
||||
|
||||
|
||||
Reference in new issue
Block a user