aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/vdso.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/vdso.c')
-rw-r--r--arch/s390/kernel/vdso.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c
index 6b83870507d5..d73630b4fe1d 100644
--- a/arch/s390/kernel/vdso.c
+++ b/arch/s390/kernel/vdso.c
@@ -84,11 +84,7 @@ struct vdso_data *vdso_data = &vdso_data_store.data;
84 */ 84 */
85static void vdso_init_data(struct vdso_data *vd) 85static void vdso_init_data(struct vdso_data *vd)
86{ 86{
87 unsigned int facility_list; 87 vd->ectg_available = user_mode != HOME_SPACE_MODE && test_facility(31);
88
89 facility_list = stfl();
90 vd->ectg_available =
91 user_mode != HOME_SPACE_MODE && (facility_list & 1);
92} 88}
93 89
94#ifdef CONFIG_64BIT 90#ifdef CONFIG_64BIT
@@ -207,7 +203,6 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
207 if (!uses_interp) 203 if (!uses_interp)
208 return 0; 204 return 0;
209 205
210 vdso_base = mm->mmap_base;
211#ifdef CONFIG_64BIT 206#ifdef CONFIG_64BIT
212 vdso_pagelist = vdso64_pagelist; 207 vdso_pagelist = vdso64_pagelist;
213 vdso_pages = vdso64_pages; 208 vdso_pages = vdso64_pages;
@@ -237,8 +232,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
237 * fail and end up putting it elsewhere. 232 * fail and end up putting it elsewhere.
238 */ 233 */
239 down_write(&mm->mmap_sem); 234 down_write(&mm->mmap_sem);
240 vdso_base = get_unmapped_area(NULL, vdso_base, 235 vdso_base = get_unmapped_area(NULL, 0, vdso_pages << PAGE_SHIFT, 0, 0);
241 vdso_pages << PAGE_SHIFT, 0, 0);
242 if (IS_ERR_VALUE(vdso_base)) { 236 if (IS_ERR_VALUE(vdso_base)) {
243 rc = vdso_base; 237 rc = vdso_base;
244 goto out_up; 238 goto out_up;
@@ -343,17 +337,17 @@ static int __init vdso_init(void)
343} 337}
344arch_initcall(vdso_init); 338arch_initcall(vdso_init);
345 339
346int in_gate_area_no_task(unsigned long addr) 340int in_gate_area_no_mm(unsigned long addr)
347{ 341{
348 return 0; 342 return 0;
349} 343}
350 344
351int in_gate_area(struct task_struct *task, unsigned long addr) 345int in_gate_area(struct mm_struct *mm, unsigned long addr)
352{ 346{
353 return 0; 347 return 0;
354} 348}
355 349
356struct vm_area_struct *get_gate_vma(struct task_struct *tsk) 350struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
357{ 351{
358 return NULL; 352 return NULL;
359} 353}