s390/mm: remove set_fs / rework address space handling
[linux-2.6-microblaze.git] / arch / s390 / kernel / vdso.c
index f9da5b1..53c983f 100644 (file)
@@ -99,61 +99,6 @@ static union {
        u8                      page[PAGE_SIZE];
 } vdso_data_store __page_aligned_data;
 struct vdso_data *vdso_data = (struct vdso_data *)&vdso_data_store.data;
-/*
- * Allocate/free per cpu vdso data.
- */
-#define SEGMENT_ORDER  2
-
-int vdso_alloc_per_cpu(struct lowcore *lowcore)
-{
-       unsigned long segment_table, page_table, page_frame;
-       struct vdso_per_cpu_data *vd;
-
-       segment_table = __get_free_pages(GFP_KERNEL, SEGMENT_ORDER);
-       page_table = get_zeroed_page(GFP_KERNEL);
-       page_frame = get_zeroed_page(GFP_KERNEL);
-       if (!segment_table || !page_table || !page_frame)
-               goto out;
-       arch_set_page_dat(virt_to_page(segment_table), SEGMENT_ORDER);
-       arch_set_page_dat(virt_to_page(page_table), 0);
-
-       /* Initialize per-cpu vdso data page */
-       vd = (struct vdso_per_cpu_data *) page_frame;
-       vd->cpu_nr = lowcore->cpu_nr;
-       vd->node_id = cpu_to_node(vd->cpu_nr);
-
-       /* Set up page table for the vdso address space */
-       memset64((u64 *)segment_table, _SEGMENT_ENTRY_EMPTY, _CRST_ENTRIES);
-       memset64((u64 *)page_table, _PAGE_INVALID, PTRS_PER_PTE);
-
-       *(unsigned long *) segment_table = _SEGMENT_ENTRY + page_table;
-       *(unsigned long *) page_table = _PAGE_PROTECT + page_frame;
-
-       lowcore->vdso_asce = segment_table +
-               _ASCE_TABLE_LENGTH + _ASCE_USER_BITS + _ASCE_TYPE_SEGMENT;
-       lowcore->vdso_per_cpu_data = page_frame;
-
-       return 0;
-
-out:
-       free_page(page_frame);
-       free_page(page_table);
-       free_pages(segment_table, SEGMENT_ORDER);
-       return -ENOMEM;
-}
-
-void vdso_free_per_cpu(struct lowcore *lowcore)
-{
-       unsigned long segment_table, page_table, page_frame;
-
-       segment_table = lowcore->vdso_asce & PAGE_MASK;
-       page_table = *(unsigned long *) segment_table;
-       page_frame = *(unsigned long *) page_table;
-
-       free_page(page_frame);
-       free_page(page_table);
-       free_pages(segment_table, SEGMENT_ORDER);
-}
 
 /*
  * This is called from binfmt_elf, we create the special vma for the
@@ -240,8 +185,6 @@ static int __init vdso_init(void)
        }
        vdso64_pagelist[vdso64_pages - 1] = virt_to_page(vdso_data);
        vdso64_pagelist[vdso64_pages] = NULL;
-       if (vdso_alloc_per_cpu(&S390_lowcore))
-               BUG();
 
        get_page(virt_to_page(vdso_data));