@@ -95,13 +95,16 @@ static inline void pud_free(struct mm_struct *mm, pud_t *pud)
95
95
__pud_free (mm , pud );
96
96
}
97
97
98
- #define __pud_free_tlb (tlb , pud , addr ) \
99
- do { \
100
- if (pgtable_l4_enabled) { \
101
- pagetable_pud_dtor(virt_to_ptdesc(pud)); \
102
- tlb_remove_page_ptdesc((tlb), virt_to_ptdesc(pud)); \
103
- } \
104
- } while (0)
98
+ static inline void __pud_free_tlb (struct mmu_gather * tlb , pud_t * pud ,
99
+ unsigned long addr )
100
+ {
101
+ if (pgtable_l4_enabled ) {
102
+ struct ptdesc * ptdesc = virt_to_ptdesc (pud );
103
+
104
+ pagetable_pud_dtor (ptdesc );
105
+ tlb_remove_page_ptdesc (tlb , ptdesc );
106
+ }
107
+ }
105
108
106
109
#define p4d_alloc_one p4d_alloc_one
107
110
static inline p4d_t * p4d_alloc_one (struct mm_struct * mm , unsigned long addr )
@@ -130,11 +133,12 @@ static inline void p4d_free(struct mm_struct *mm, p4d_t *p4d)
130
133
__p4d_free (mm , p4d );
131
134
}
132
135
133
- #define __p4d_free_tlb (tlb , p4d , addr ) \
134
- do { \
135
- if (pgtable_l5_enabled) \
136
- tlb_remove_page_ptdesc((tlb), virt_to_ptdesc(p4d)); \
137
- } while (0)
136
+ static inline void __p4d_free_tlb (struct mmu_gather * tlb , p4d_t * p4d ,
137
+ unsigned long addr )
138
+ {
139
+ if (pgtable_l5_enabled )
140
+ tlb_remove_page_ptdesc (tlb , virt_to_ptdesc (p4d ));
141
+ }
138
142
#endif /* __PAGETABLE_PMD_FOLDED */
139
143
140
144
static inline void sync_kernel_mappings (pgd_t * pgd )
@@ -159,19 +163,25 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm)
159
163
160
164
#ifndef __PAGETABLE_PMD_FOLDED
161
165
162
- #define __pmd_free_tlb (tlb , pmd , addr ) \
163
- do { \
164
- pagetable_pmd_dtor(virt_to_ptdesc(pmd)); \
165
- tlb_remove_page_ptdesc((tlb), virt_to_ptdesc(pmd)); \
166
- } while (0)
166
+ static inline void __pmd_free_tlb (struct mmu_gather * tlb , pmd_t * pmd ,
167
+ unsigned long addr )
168
+ {
169
+ struct ptdesc * ptdesc = virt_to_ptdesc (pmd );
170
+
171
+ pagetable_pmd_dtor (ptdesc );
172
+ tlb_remove_page_ptdesc (tlb , ptdesc );
173
+ }
167
174
168
175
#endif /* __PAGETABLE_PMD_FOLDED */
169
176
170
- #define __pte_free_tlb (tlb , pte , buf ) \
171
- do { \
172
- pagetable_pte_dtor(page_ptdesc(pte)); \
173
- tlb_remove_page_ptdesc((tlb), page_ptdesc(pte));\
174
- } while (0)
177
+ static inline void __pte_free_tlb (struct mmu_gather * tlb , pgtable_t pte ,
178
+ unsigned long addr )
179
+ {
180
+ struct ptdesc * ptdesc = page_ptdesc (pte );
181
+
182
+ pagetable_pte_dtor (ptdesc );
183
+ tlb_remove_page_ptdesc (tlb , ptdesc );
184
+ }
175
185
#endif /* CONFIG_MMU */
176
186
177
187
#endif /* _ASM_RISCV_PGALLOC_H */
0 commit comments