diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/pgtable.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 8e4f41d9af4d..34c7bdc06014 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
| @@ -701,6 +701,18 @@ static inline pte_t pte_mknuma(pte_t pte) | |||
| 701 | } | 701 | } |
| 702 | #endif | 702 | #endif |
| 703 | 703 | ||
| 704 | #ifndef ptep_set_numa | ||
| 705 | static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr, | ||
| 706 | pte_t *ptep) | ||
| 707 | { | ||
| 708 | pte_t ptent = *ptep; | ||
| 709 | |||
| 710 | ptent = pte_mknuma(ptent); | ||
| 711 | set_pte_at(mm, addr, ptep, ptent); | ||
| 712 | return; | ||
| 713 | } | ||
| 714 | #endif | ||
| 715 | |||
| 704 | #ifndef pmd_mknuma | 716 | #ifndef pmd_mknuma |
| 705 | static inline pmd_t pmd_mknuma(pmd_t pmd) | 717 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
| 706 | { | 718 | { |
| @@ -708,6 +720,18 @@ static inline pmd_t pmd_mknuma(pmd_t pmd) | |||
| 708 | return pmd_clear_flags(pmd, _PAGE_PRESENT); | 720 | return pmd_clear_flags(pmd, _PAGE_PRESENT); |
| 709 | } | 721 | } |
| 710 | #endif | 722 | #endif |
| 723 | |||
| 724 | #ifndef pmdp_set_numa | ||
| 725 | static inline void pmdp_set_numa(struct mm_struct *mm, unsigned long addr, | ||
| 726 | pmd_t *pmdp) | ||
| 727 | { | ||
| 728 | pmd_t pmd = *pmdp; | ||
| 729 | |||
| 730 | pmd = pmd_mknuma(pmd); | ||
| 731 | set_pmd_at(mm, addr, pmdp, pmd); | ||
| 732 | return; | ||
| 733 | } | ||
| 734 | #endif | ||
| 711 | #else | 735 | #else |
| 712 | extern int pte_numa(pte_t pte); | 736 | extern int pte_numa(pte_t pte); |
| 713 | extern int pmd_numa(pmd_t pmd); | 737 | extern int pmd_numa(pmd_t pmd); |
| @@ -715,6 +739,8 @@ extern pte_t pte_mknonnuma(pte_t pte); | |||
| 715 | extern pmd_t pmd_mknonnuma(pmd_t pmd); | 739 | extern pmd_t pmd_mknonnuma(pmd_t pmd); |
| 716 | extern pte_t pte_mknuma(pte_t pte); | 740 | extern pte_t pte_mknuma(pte_t pte); |
| 717 | extern pmd_t pmd_mknuma(pmd_t pmd); | 741 | extern pmd_t pmd_mknuma(pmd_t pmd); |
| 742 | extern void ptep_set_numa(struct mm_struct *mm, unsigned long addr, pte_t *ptep); | ||
| 743 | extern void pmdp_set_numa(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp); | ||
| 718 | #endif /* CONFIG_ARCH_USES_NUMA_PROT_NONE */ | 744 | #endif /* CONFIG_ARCH_USES_NUMA_PROT_NONE */ |
| 719 | #else | 745 | #else |
| 720 | static inline int pmd_numa(pmd_t pmd) | 746 | static inline int pmd_numa(pmd_t pmd) |
| @@ -742,10 +768,23 @@ static inline pte_t pte_mknuma(pte_t pte) | |||
| 742 | return pte; | 768 | return pte; |
| 743 | } | 769 | } |
| 744 | 770 | ||
| 771 | static inline void ptep_set_numa(struct mm_struct *mm, unsigned long addr, | ||
| 772 | pte_t *ptep) | ||
| 773 | { | ||
| 774 | return; | ||
| 775 | } | ||
| 776 | |||
| 777 | |||
| 745 | static inline pmd_t pmd_mknuma(pmd_t pmd) | 778 | static inline pmd_t pmd_mknuma(pmd_t pmd) |
| 746 | { | 779 | { |
| 747 | return pmd; | 780 | return pmd; |
| 748 | } | 781 | } |
| 782 | |||
| 783 | static inline void pmdp_set_numa(struct mm_struct *mm, unsigned long addr, | ||
| 784 | pmd_t *pmdp) | ||
| 785 | { | ||
| 786 | return ; | ||
| 787 | } | ||
| 749 | #endif /* CONFIG_NUMA_BALANCING */ | 788 | #endif /* CONFIG_NUMA_BALANCING */ |
| 750 | 789 | ||
| 751 | #endif /* CONFIG_MMU */ | 790 | #endif /* CONFIG_MMU */ |
