forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/arch/sh/mm/hugetlbpage.c
....@@ -17,26 +17,29 @@
1717 #include <linux/sysctl.h>
1818
1919 #include <asm/mman.h>
20
-#include <asm/pgalloc.h>
2120 #include <asm/tlb.h>
2221 #include <asm/tlbflush.h>
2322 #include <asm/cacheflush.h>
2423
25
-pte_t *huge_pte_alloc(struct mm_struct *mm,
24
+pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
2625 unsigned long addr, unsigned long sz)
2726 {
2827 pgd_t *pgd;
28
+ p4d_t *p4d;
2929 pud_t *pud;
3030 pmd_t *pmd;
3131 pte_t *pte = NULL;
3232
3333 pgd = pgd_offset(mm, addr);
3434 if (pgd) {
35
- pud = pud_alloc(mm, pgd, addr);
36
- if (pud) {
37
- pmd = pmd_alloc(mm, pud, addr);
38
- if (pmd)
39
- pte = pte_alloc_map(mm, pmd, addr);
35
+ p4d = p4d_alloc(mm, pgd, addr);
36
+ if (p4d) {
37
+ pud = pud_alloc(mm, p4d, addr);
38
+ if (pud) {
39
+ pmd = pmd_alloc(mm, pud, addr);
40
+ if (pmd)
41
+ pte = pte_alloc_map(mm, pmd, addr);
42
+ }
4043 }
4144 }
4245
....@@ -47,17 +50,21 @@
4750 unsigned long addr, unsigned long sz)
4851 {
4952 pgd_t *pgd;
53
+ p4d_t *p4d;
5054 pud_t *pud;
5155 pmd_t *pmd;
5256 pte_t *pte = NULL;
5357
5458 pgd = pgd_offset(mm, addr);
5559 if (pgd) {
56
- pud = pud_offset(pgd, addr);
57
- if (pud) {
58
- pmd = pmd_offset(pud, addr);
59
- if (pmd)
60
- pte = pte_offset_map(pmd, addr);
60
+ p4d = p4d_offset(pgd, addr);
61
+ if (p4d) {
62
+ pud = pud_offset(p4d, addr);
63
+ if (pud) {
64
+ pmd = pmd_offset(pud, addr);
65
+ if (pmd)
66
+ pte = pte_offset_map(pmd, addr);
67
+ }
6168 }
6269 }
6370