diff options
Diffstat (limited to 'include/linux/mm.h')
| -rw-r--r-- | include/linux/mm.h | 38 | 
1 files changed, 19 insertions, 19 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index b9fa82b96d9e..22c2d6922c0e 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h  | |||
| @@ -704,10 +704,6 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping, | |||
| 704 | } | 704 | } | 
| 705 | 705 | ||
| 706 | extern int vmtruncate(struct inode * inode, loff_t offset); | 706 | extern int vmtruncate(struct inode * inode, loff_t offset); | 
| 707 | extern pud_t *FASTCALL(__pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)); | ||
| 708 | extern pmd_t *FASTCALL(__pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)); | ||
| 709 | extern pte_t *FASTCALL(pte_alloc_kernel(pmd_t *pmd, unsigned long address)); | ||
| 710 | extern pte_t *FASTCALL(pte_alloc_map(struct mm_struct *mm, pmd_t *pmd, unsigned long address)); | ||
| 711 | extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot); | 707 | extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot); | 
| 712 | extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot); | 708 | extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot); | 
| 713 | extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); | 709 | extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); | 
| @@ -760,32 +756,36 @@ struct shrinker; | |||
| 760 | extern struct shrinker *set_shrinker(int, shrinker_t); | 756 | extern struct shrinker *set_shrinker(int, shrinker_t); | 
| 761 | extern void remove_shrinker(struct shrinker *shrinker); | 757 | extern void remove_shrinker(struct shrinker *shrinker); | 
| 762 | 758 | ||
| 763 | /* | 759 | int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); | 
| 764 | * On a two-level or three-level page table, this ends up being trivial. Thus | 760 | int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); | 
| 765 | * the inlining and the symmetry break with pte_alloc_map() that does all | 761 | int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); | 
| 766 | * of this out-of-line. | 762 | int __pte_alloc_kernel(pmd_t *pmd, unsigned long address); | 
| 767 | */ | 763 | |
| 768 | /* | 764 | /* | 
| 769 | * The following ifdef needed to get the 4level-fixup.h header to work. | 765 | * The following ifdef needed to get the 4level-fixup.h header to work. | 
| 770 | * Remove it when 4level-fixup.h has been removed. | 766 | * Remove it when 4level-fixup.h has been removed. | 
| 771 | */ | 767 | */ | 
| 772 | #ifdef CONFIG_MMU | 768 | #if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK) | 
| 773 | #ifndef __ARCH_HAS_4LEVEL_HACK | ||
| 774 | static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) | 769 | static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) | 
| 775 | { | 770 | { | 
| 776 | if (pgd_none(*pgd)) | 771 | return (unlikely(pgd_none(*pgd)) && __pud_alloc(mm, pgd, address))? | 
| 777 | return __pud_alloc(mm, pgd, address); | 772 | NULL: pud_offset(pgd, address); | 
| 778 | return pud_offset(pgd, address); | ||
| 779 | } | 773 | } | 
| 780 | 774 | ||
| 781 | static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) | 775 | static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) | 
| 782 | { | 776 | { | 
| 783 | if (pud_none(*pud)) | 777 | return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))? | 
| 784 | return __pmd_alloc(mm, pud, address); | 778 | NULL: pmd_offset(pud, address); | 
| 785 | return pmd_offset(pud, address); | ||
| 786 | } | 779 | } | 
| 787 | #endif | 780 | #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */ | 
| 788 | #endif /* CONFIG_MMU */ | 781 | |
| 782 | #define pte_alloc_map(mm, pmd, address) \ | ||
| 783 | ((unlikely(!pmd_present(*(pmd))) && __pte_alloc(mm, pmd, address))? \ | ||
| 784 | NULL: pte_offset_map(pmd, address)) | ||
| 785 | |||
| 786 | #define pte_alloc_kernel(pmd, address) \ | ||
| 787 | ((unlikely(!pmd_present(*(pmd))) && __pte_alloc_kernel(pmd, address))? \ | ||
| 788 | NULL: pte_offset_kernel(pmd, address)) | ||
| 789 | 789 | ||
| 790 | extern void free_area_init(unsigned long * zones_size); | 790 | extern void free_area_init(unsigned long * zones_size); | 
| 791 | extern void free_area_init_node(int nid, pg_data_t *pgdat, | 791 | extern void free_area_init_node(int nid, pg_data_t *pgdat, | 
