return ret;
 }
 
-#ifdef CONFIG_X86_64
-/*
- * Put the vdso above the (randomized) stack with another randomized
- * offset.  This way there is no hole in the middle of address space.
- * To save memory make sure it is still in the same PTE as the stack
- * top.  This doesn't give that many random bits.
- *
- * Note that this algorithm is imperfect: the distribution of the vdso
- * start address within a PMD is biased toward the end.
- *
- * Only used for the 64-bit and x32 vdsos.
- */
-static unsigned long vdso_addr(unsigned long start, unsigned len)
-{
-       unsigned long addr, end;
-       unsigned offset;
-
-       /*
-        * Round up the start address.  It can start out unaligned as a result
-        * of stack start randomization.
-        */
-       start = PAGE_ALIGN(start);
-
-       /* Round the lowest possible end address up to a PMD boundary. */
-       end = (start + len + PMD_SIZE - 1) & PMD_MASK;
-       if (end >= DEFAULT_MAP_WINDOW)
-               end = DEFAULT_MAP_WINDOW;
-       end -= len;
-
-       if (end > start) {
-               offset = get_random_u32_below(((end - start) >> PAGE_SHIFT) + 1);
-               addr = start + (offset << PAGE_SHIFT);
-       } else {
-               addr = start;
-       }
-
-       /*
-        * Forcibly align the final address in case we have a hardware
-        * issue that requires alignment for performance reasons.
-        */
-       addr = align_vdso_addr(addr);
-
-       return addr;
-}
-
-static int map_vdso_randomized(const struct vdso_image *image)
-{
-       unsigned long addr = vdso_addr(current->mm->start_stack, image->size-image->sym_vvar_start);
-
-       return map_vdso(image, addr);
-}
-#endif
-
 int map_vdso_once(const struct vdso_image *image, unsigned long addr)
 {
        struct mm_struct *mm = current->mm;
        if (!vdso64_enabled)
                return 0;
 
-       return map_vdso_randomized(&vdso_image_64);
+       return map_vdso(&vdso_image_64, 0);
 }
 
 #ifdef CONFIG_COMPAT
        if (x32) {
                if (!vdso64_enabled)
                        return 0;
-               return map_vdso_randomized(&vdso_image_x32);
+               return map_vdso(&vdso_image_x32, 0);
        }
 #endif
 #ifdef CONFIG_IA32_EMULATION
 
        return va_align.bits & get_align_mask();
 }
 
-unsigned long align_vdso_addr(unsigned long addr)
-{
-       unsigned long align_mask = get_align_mask();
-       addr = (addr + align_mask) & ~align_mask;
-       return addr | get_align_bits();
-}
-
 static int __init control_va_addr_alignment(char *str)
 {
        /* guard against enabling this on other CPU families */