hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/nds32/mm/proc.c
....@@ -5,7 +5,6 @@
55 #include <linux/sched.h>
66 #include <linux/mm.h>
77 #include <asm/nds32.h>
8
-#include <asm/pgtable.h>
98 #include <asm/tlbflush.h>
109 #include <asm/cacheflush.h>
1110 #include <asm/l2_cache.h>
....@@ -19,7 +18,7 @@
1918 pmd_t *pmd;
2019 pte_t *ptep, pte;
2120
22
- pmd = pmd_offset(pgd_offset_k(addr), addr);
21
+ pmd = pmd_off_k(addr);
2322 if (!pmd_none(*pmd)) {
2423 ptep = pte_offset_map(pmd, addr);
2524 pte = *ptep;
....@@ -32,20 +31,24 @@
3231 pte_t va_present(struct mm_struct * mm, unsigned long addr)
3332 {
3433 pgd_t *pgd;
34
+ p4d_t *p4d;
3535 pud_t *pud;
3636 pmd_t *pmd;
3737 pte_t *ptep, pte;
3838
3939 pgd = pgd_offset(mm, addr);
4040 if (!pgd_none(*pgd)) {
41
- pud = pud_offset(pgd, addr);
42
- if (!pud_none(*pud)) {
43
- pmd = pmd_offset(pud, addr);
44
- if (!pmd_none(*pmd)) {
45
- ptep = pte_offset_map(pmd, addr);
46
- pte = *ptep;
47
- if (pte_present(pte))
48
- return pte;
41
+ p4d = p4d_offset(pgd, addr);
42
+ if (!p4d_none(*p4d)) {
43
+ pud = pud_offset(p4d, addr);
44
+ if (!pud_none(*pud)) {
45
+ pmd = pmd_offset(pud, addr);
46
+ if (!pmd_none(*pmd)) {
47
+ ptep = pte_offset_map(pmd, addr);
48
+ pte = *ptep;
49
+ if (pte_present(pte))
50
+ return pte;
51
+ }
4952 }
5053 }
5154 }