diff options
Diffstat (limited to 'arch/ia64/mm/hugetlbpage.c')
-rw-r--r-- | arch/ia64/mm/hugetlbpage.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index d3ce8f3bcaa6..c45fc7f5a979 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c | |||
@@ -24,7 +24,7 @@ | |||
24 | unsigned int hpage_shift=HPAGE_SHIFT_DEFAULT; | 24 | unsigned int hpage_shift=HPAGE_SHIFT_DEFAULT; |
25 | 25 | ||
26 | pte_t * | 26 | pte_t * |
27 | huge_pte_alloc (struct mm_struct *mm, unsigned long addr) | 27 | huge_pte_alloc(struct mm_struct *mm, unsigned long addr, unsigned long sz) |
28 | { | 28 | { |
29 | unsigned long taddr = htlbpage_to_page(addr); | 29 | unsigned long taddr = htlbpage_to_page(addr); |
30 | pgd_t *pgd; | 30 | pgd_t *pgd; |
@@ -75,7 +75,8 @@ int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep) | |||
75 | * Don't actually need to do any preparation, but need to make sure | 75 | * Don't actually need to do any preparation, but need to make sure |
76 | * the address is in the right region. | 76 | * the address is in the right region. |
77 | */ | 77 | */ |
78 | int prepare_hugepage_range(unsigned long addr, unsigned long len) | 78 | int prepare_hugepage_range(struct file *file, |
79 | unsigned long addr, unsigned long len) | ||
79 | { | 80 | { |
80 | if (len & ~HPAGE_MASK) | 81 | if (len & ~HPAGE_MASK) |
81 | return -EINVAL; | 82 | return -EINVAL; |
@@ -106,13 +107,19 @@ int pmd_huge(pmd_t pmd) | |||
106 | { | 107 | { |
107 | return 0; | 108 | return 0; |
108 | } | 109 | } |
110 | |||
111 | int pud_huge(pud_t pud) | ||
112 | { | ||
113 | return 0; | ||
114 | } | ||
115 | |||
109 | struct page * | 116 | struct page * |
110 | follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) | 117 | follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) |
111 | { | 118 | { |
112 | return NULL; | 119 | return NULL; |
113 | } | 120 | } |
114 | 121 | ||
115 | void hugetlb_free_pgd_range(struct mmu_gather **tlb, | 122 | void hugetlb_free_pgd_range(struct mmu_gather *tlb, |
116 | unsigned long addr, unsigned long end, | 123 | unsigned long addr, unsigned long end, |
117 | unsigned long floor, unsigned long ceiling) | 124 | unsigned long floor, unsigned long ceiling) |
118 | { | 125 | { |
@@ -149,7 +156,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u | |||
149 | 156 | ||
150 | /* Handle MAP_FIXED */ | 157 | /* Handle MAP_FIXED */ |
151 | if (flags & MAP_FIXED) { | 158 | if (flags & MAP_FIXED) { |
152 | if (prepare_hugepage_range(addr, len)) | 159 | if (prepare_hugepage_range(file, addr, len)) |
153 | return -EINVAL; | 160 | return -EINVAL; |
154 | return addr; | 161 | return addr; |
155 | } | 162 | } |