diff options
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/pgtable.h | 2 | ||||
-rw-r--r-- | arch/s390/mm/gup.c | 6 | ||||
-rw-r--r-- | arch/s390/mm/hugetlbpage.c | 20 |
3 files changed, 3 insertions, 25 deletions
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 0441ec24ae87..fbb5ee3ae57c 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h | |||
@@ -99,7 +99,7 @@ extern unsigned long zero_page_mask; | |||
99 | #endif /* CONFIG_64BIT */ | 99 | #endif /* CONFIG_64BIT */ |
100 | #define PTRS_PER_PGD 2048 | 100 | #define PTRS_PER_PGD 2048 |
101 | 101 | ||
102 | #define FIRST_USER_ADDRESS 0 | 102 | #define FIRST_USER_ADDRESS 0UL |
103 | 103 | ||
104 | #define pte_ERROR(e) \ | 104 | #define pte_ERROR(e) \ |
105 | printk("%s:%d: bad pte %p.\n", __FILE__, __LINE__, (void *) pte_val(e)) | 105 | printk("%s:%d: bad pte %p.\n", __FILE__, __LINE__, (void *) pte_val(e)) |
diff --git a/arch/s390/mm/gup.c b/arch/s390/mm/gup.c index 639fce464008..5c586c78ca8d 100644 --- a/arch/s390/mm/gup.c +++ b/arch/s390/mm/gup.c | |||
@@ -235,10 +235,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, | |||
235 | /* Try to get the remaining pages with get_user_pages */ | 235 | /* Try to get the remaining pages with get_user_pages */ |
236 | start += nr << PAGE_SHIFT; | 236 | start += nr << PAGE_SHIFT; |
237 | pages += nr; | 237 | pages += nr; |
238 | down_read(&mm->mmap_sem); | 238 | ret = get_user_pages_unlocked(current, mm, start, |
239 | ret = get_user_pages(current, mm, start, | 239 | nr_pages - nr, write, 0, pages); |
240 | nr_pages - nr, write, 0, pages, NULL); | ||
241 | up_read(&mm->mmap_sem); | ||
242 | /* Have to be a bit careful with return values */ | 240 | /* Have to be a bit careful with return values */ |
243 | if (nr > 0) | 241 | if (nr > 0) |
244 | ret = (ret < 0) ? nr : ret + nr; | 242 | ret = (ret < 0) ? nr : ret + nr; |
diff --git a/arch/s390/mm/hugetlbpage.c b/arch/s390/mm/hugetlbpage.c index 3c80d2e38f03..210ffede0153 100644 --- a/arch/s390/mm/hugetlbpage.c +++ b/arch/s390/mm/hugetlbpage.c | |||
@@ -192,12 +192,6 @@ int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep) | |||
192 | return 0; | 192 | return 0; |
193 | } | 193 | } |
194 | 194 | ||
195 | struct page *follow_huge_addr(struct mm_struct *mm, unsigned long address, | ||
196 | int write) | ||
197 | { | ||
198 | return ERR_PTR(-EINVAL); | ||
199 | } | ||
200 | |||
201 | int pmd_huge(pmd_t pmd) | 195 | int pmd_huge(pmd_t pmd) |
202 | { | 196 | { |
203 | if (!MACHINE_HAS_HPAGE) | 197 | if (!MACHINE_HAS_HPAGE) |
@@ -210,17 +204,3 @@ int pud_huge(pud_t pud) | |||
210 | { | 204 | { |
211 | return 0; | 205 | return 0; |
212 | } | 206 | } |
213 | |||
214 | struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, | ||
215 | pmd_t *pmdp, int write) | ||
216 | { | ||
217 | struct page *page; | ||
218 | |||
219 | if (!MACHINE_HAS_HPAGE) | ||
220 | return NULL; | ||
221 | |||
222 | page = pmd_page(*pmdp); | ||
223 | if (page) | ||
224 | page += ((address & ~HPAGE_MASK) >> PAGE_SHIFT); | ||
225 | return page; | ||
226 | } | ||