hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/arch/parisc/include/asm/page.h
....@@ -42,47 +42,53 @@
4242
4343 /* NOTE: even on 64 bits, these entries are __u32 because we allocate
4444 * the pmd and pgd in ZONE_DMA (i.e. under 4GB) */
45
-typedef struct { __u32 pmd; } pmd_t;
4645 typedef struct { __u32 pgd; } pgd_t;
4746 typedef struct { unsigned long pgprot; } pgprot_t;
4847
49
-#define pte_val(x) ((x).pte)
50
-/* These do not work lvalues, so make sure we don't use them as such. */
48
+#if CONFIG_PGTABLE_LEVELS == 3
49
+typedef struct { __u32 pmd; } pmd_t;
50
+#define __pmd(x) ((pmd_t) { (x) } )
51
+/* pXd_val() do not work as lvalues, so make sure we don't use them as such. */
5152 #define pmd_val(x) ((x).pmd + 0)
53
+#endif
54
+
55
+#define pte_val(x) ((x).pte)
5256 #define pgd_val(x) ((x).pgd + 0)
5357 #define pgprot_val(x) ((x).pgprot)
5458
5559 #define __pte(x) ((pte_t) { (x) } )
56
-#define __pmd(x) ((pmd_t) { (x) } )
5760 #define __pgd(x) ((pgd_t) { (x) } )
5861 #define __pgprot(x) ((pgprot_t) { (x) } )
59
-
60
-#define __pmd_val_set(x,n) (x).pmd = (n)
61
-#define __pgd_val_set(x,n) (x).pgd = (n)
6262
6363 #else
6464 /*
6565 * .. while these make it easier on the compiler
6666 */
6767 typedef unsigned long pte_t;
68
+
69
+#if CONFIG_PGTABLE_LEVELS == 3
6870 typedef __u32 pmd_t;
71
+#define pmd_val(x) (x)
72
+#define __pmd(x) (x)
73
+#endif
74
+
6975 typedef __u32 pgd_t;
7076 typedef unsigned long pgprot_t;
7177
7278 #define pte_val(x) (x)
73
-#define pmd_val(x) (x)
7479 #define pgd_val(x) (x)
7580 #define pgprot_val(x) (x)
7681
7782 #define __pte(x) (x)
78
-#define __pmd(x) (x)
7983 #define __pgd(x) (x)
8084 #define __pgprot(x) (x)
8185
82
-#define __pmd_val_set(x,n) (x) = (n)
83
-#define __pgd_val_set(x,n) (x) = (n)
84
-
8586 #endif /* STRICT_MM_TYPECHECKS */
87
+
88
+#define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval))
89
+#if CONFIG_PGTABLE_LEVELS == 3
90
+#define set_pud(pudptr, pudval) (*(pudptr) = (pudval))
91
+#endif
8692
8793 typedef struct page *pgtable_t;
8894
....@@ -106,7 +112,7 @@
106112 #else
107113 #define BITS_PER_PTE_ENTRY 2
108114 #define BITS_PER_PMD_ENTRY 2
109
-#define BITS_PER_PGD_ENTRY BITS_PER_PMD_ENTRY
115
+#define BITS_PER_PGD_ENTRY 2
110116 #endif
111117 #define PGD_ENTRY_SIZE (1UL << BITS_PER_PGD_ENTRY)
112118 #define PMD_ENTRY_SIZE (1UL << BITS_PER_PMD_ENTRY)
....@@ -117,14 +123,16 @@
117123 /* This governs the relationship between virtual and physical addresses.
118124 * If you alter it, make sure to take care of our various fixed mapping
119125 * segments in fixmap.h */
120
-#if defined(BOOTLOADER)
121
-#define __PAGE_OFFSET (0) /* bootloader uses physical addresses */
122
-#else
123126 #ifdef CONFIG_64BIT
124
-#define __PAGE_OFFSET (0x40000000) /* 1GB */
127
+#define __PAGE_OFFSET_DEFAULT (0x40000000) /* 1GB */
125128 #else
126
-#define __PAGE_OFFSET (0x10000000) /* 256MB */
129
+#define __PAGE_OFFSET_DEFAULT (0x10000000) /* 256MB */
127130 #endif
131
+
132
+#if defined(BOOTLOADER)
133
+#define __PAGE_OFFSET (0) /* bootloader uses physical addresses */
134
+#else
135
+#define __PAGE_OFFSET __PAGE_OFFSET_DEFAULT
128136 #endif /* BOOTLOADER */
129137
130138 #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
....@@ -171,9 +179,6 @@
171179
172180 #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
173181 #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
174
-
175
-#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
176
- VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
177182
178183 #include <asm-generic/memory_model.h>
179184 #include <asm-generic/getorder.h>