pgtable.h (0ea8a56de21be24cb79abb03dee79aabcd60a316) pgtable.h (b02002cc4c0f8a2340d07690f58cae0c04ba2325)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * S390 version
4 * Copyright IBM Corp. 1999, 2000
5 * Author(s): Hartmut Penner (hp@de.ibm.com)
6 * Ulrich Weigand (weigand@de.ibm.com)
7 * Martin Schwidefsky (schwidefsky@de.ibm.com)
8 *

--- 1172 unchanged lines hidden (view full) ---

1181int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep);
1182int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc,
1183 unsigned long *oldpte, unsigned long *oldpgste);
1184void gmap_pmdp_csp(struct mm_struct *mm, unsigned long vmaddr);
1185void gmap_pmdp_invalidate(struct mm_struct *mm, unsigned long vmaddr);
1186void gmap_pmdp_idte_local(struct mm_struct *mm, unsigned long vmaddr);
1187void gmap_pmdp_idte_global(struct mm_struct *mm, unsigned long vmaddr);
1188
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * S390 version
4 * Copyright IBM Corp. 1999, 2000
5 * Author(s): Hartmut Penner (hp@de.ibm.com)
6 * Ulrich Weigand (weigand@de.ibm.com)
7 * Martin Schwidefsky (schwidefsky@de.ibm.com)
8 *

--- 1172 unchanged lines hidden (view full) ---

1181int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep);
1182int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc,
1183 unsigned long *oldpte, unsigned long *oldpgste);
1184void gmap_pmdp_csp(struct mm_struct *mm, unsigned long vmaddr);
1185void gmap_pmdp_invalidate(struct mm_struct *mm, unsigned long vmaddr);
1186void gmap_pmdp_idte_local(struct mm_struct *mm, unsigned long vmaddr);
1187void gmap_pmdp_idte_global(struct mm_struct *mm, unsigned long vmaddr);
1188
1189#define pgprot_writecombine pgprot_writecombine
1190pgprot_t pgprot_writecombine(pgprot_t prot);
1191
1192#define pgprot_writethrough pgprot_writethrough
1193pgprot_t pgprot_writethrough(pgprot_t prot);
1194
1189/*
1190 * Certain architectures need to do special things when PTEs
1191 * within a page table are directly modified. Thus, the following
1192 * hook is made available.
1193 */
1194static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
1195 pte_t *ptep, pte_t entry)
1196{

--- 7 unchanged lines hidden (view full) ---

1204
1205/*
1206 * Conversion functions: convert a page and protection to a page entry,
1207 * and a page entry and page directory to the page they refer to.
1208 */
1209static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
1210{
1211 pte_t __pte;
1195/*
1196 * Certain architectures need to do special things when PTEs
1197 * within a page table are directly modified. Thus, the following
1198 * hook is made available.
1199 */
1200static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
1201 pte_t *ptep, pte_t entry)
1202{

--- 7 unchanged lines hidden (view full) ---

1210
1211/*
1212 * Conversion functions: convert a page and protection to a page entry,
1213 * and a page entry and page directory to the page they refer to.
1214 */
1215static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
1216{
1217 pte_t __pte;
1212 pte_val(__pte) = physpage + pgprot_val(pgprot);
1218
1219 pte_val(__pte) = physpage | pgprot_val(pgprot);
1213 if (!MACHINE_HAS_NX)
1214 pte_val(__pte) &= ~_PAGE_NOEXEC;
1215 return pte_mkyoung(__pte);
1216}
1217
1218static inline pte_t mk_pte(struct page *page, pgprot_t pgprot)
1219{
1220 unsigned long physpage = page_to_phys(page);

--- 461 unchanged lines hidden ---
1220 if (!MACHINE_HAS_NX)
1221 pte_val(__pte) &= ~_PAGE_NOEXEC;
1222 return pte_mkyoung(__pte);
1223}
1224
1225static inline pte_t mk_pte(struct page *page, pgprot_t pgprot)
1226{
1227 unsigned long physpage = page_to_phys(page);

--- 461 unchanged lines hidden ---