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 ---