pgtable.h (ff689fd21cb13098305bae3f8d0c0065df2e2fc1) | pgtable.h (a35707c3d850dda0ceefb75b1b3bd191921d5765) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2012 Regents of the University of California 4 */ 5 6#ifndef _ASM_RISCV_PGTABLE_H 7#define _ASM_RISCV_PGTABLE_H 8 --- 236 unchanged lines hidden (view full) --- 245 246static inline void pmd_clear(pmd_t *pmdp) 247{ 248 set_pmd(pmdp, __pmd(0)); 249} 250 251static inline pgd_t pfn_pgd(unsigned long pfn, pgprot_t prot) 252{ | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2012 Regents of the University of California 4 */ 5 6#ifndef _ASM_RISCV_PGTABLE_H 7#define _ASM_RISCV_PGTABLE_H 8 --- 236 unchanged lines hidden (view full) --- 245 246static inline void pmd_clear(pmd_t *pmdp) 247{ 248 set_pmd(pmdp, __pmd(0)); 249} 250 251static inline pgd_t pfn_pgd(unsigned long pfn, pgprot_t prot) 252{ |
253 return __pgd((pfn << _PAGE_PFN_SHIFT) | pgprot_val(prot)); | 253 unsigned long prot_val = pgprot_val(prot); 254 255 ALT_THEAD_PMA(prot_val); 256 257 return __pgd((pfn << _PAGE_PFN_SHIFT) | prot_val); |
254} 255 256static inline unsigned long _pgd_pfn(pgd_t pgd) 257{ 258 return pgd_val(pgd) >> _PAGE_PFN_SHIFT; 259} 260 261static inline struct page *pmd_page(pmd_t pmd) --- 22 unchanged lines hidden (view full) --- 284 return __page_val_to_pfn(pte_val(pte)); 285} 286 287#define pte_page(x) pfn_to_page(pte_pfn(x)) 288 289/* Constructs a page table entry */ 290static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot) 291{ | 258} 259 260static inline unsigned long _pgd_pfn(pgd_t pgd) 261{ 262 return pgd_val(pgd) >> _PAGE_PFN_SHIFT; 263} 264 265static inline struct page *pmd_page(pmd_t pmd) --- 22 unchanged lines hidden (view full) --- 288 return __page_val_to_pfn(pte_val(pte)); 289} 290 291#define pte_page(x) pfn_to_page(pte_pfn(x)) 292 293/* Constructs a page table entry */ 294static inline pte_t pfn_pte(unsigned long pfn, pgprot_t prot) 295{ |
292 return __pte((pfn << _PAGE_PFN_SHIFT) | pgprot_val(prot)); | 296 unsigned long prot_val = pgprot_val(prot); 297 298 ALT_THEAD_PMA(prot_val); 299 300 return __pte((pfn << _PAGE_PFN_SHIFT) | prot_val); |
293} 294 295#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) 296 297static inline int pte_present(pte_t pte) 298{ 299 return (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROT_NONE)); 300} --- 92 unchanged lines hidden (view full) --- 393{ 394 return pte_protnone(pmd_pte(pmd)); 395} 396#endif 397 398/* Modify page protection bits */ 399static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 400{ | 301} 302 303#define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) 304 305static inline int pte_present(pte_t pte) 306{ 307 return (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROT_NONE)); 308} --- 92 unchanged lines hidden (view full) --- 401{ 402 return pte_protnone(pmd_pte(pmd)); 403} 404#endif 405 406/* Modify page protection bits */ 407static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 408{ |
401 return __pte((pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot)); | 409 unsigned long newprot_val = pgprot_val(newprot); 410 411 ALT_THEAD_PMA(newprot_val); 412 413 return __pte((pte_val(pte) & _PAGE_CHG_MASK) | newprot_val); |
402} 403 404#define pgd_ERROR(e) \ 405 pr_err("%s:%d: bad pgd " PTE_FMT ".\n", __FILE__, __LINE__, pgd_val(e)) 406 407 408/* Commit new configuration to MMU hardware */ 409static inline void update_mmu_cache(struct vm_area_struct *vma, --- 367 unchanged lines hidden --- | 414} 415 416#define pgd_ERROR(e) \ 417 pr_err("%s:%d: bad pgd " PTE_FMT ".\n", __FILE__, __LINE__, pgd_val(e)) 418 419 420/* Commit new configuration to MMU hardware */ 421static inline void update_mmu_cache(struct vm_area_struct *vma, --- 367 unchanged lines hidden --- |