x86/mm: Introduce arch_rnd() to compute 32/64 mmap random base
authorDmitry Safonov <dsafonov@virtuozzo.com>
Mon, 6 Mar 2017 14:17:17 +0000 (17:17 +0300)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 13 Mar 2017 13:59:22 +0000 (14:59 +0100)
commit6a0b41d1e23dd3318568461593ae5e36d966981e
tree001fd5d265883cf33a50ba36dbbd68d7f0b825b4
parent4495c08e84729385774601b5146d51d9e5849f81
x86/mm: Introduce arch_rnd() to compute 32/64 mmap random base

The compat (32bit) mmap() sycall issued by a 64-bit task results in a
mapping above 4GB. That's outside the compat mode address space and
prevents CRIU to restore 32bit processes from a 64bit application.

As a first step to address this, split out the address base randomizing
calculation from arch_mmap_rnd() into a helper function, which can be used
independent of mmap_ia32() based decisions.

[ tglx: Massaged changelog ]

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Cc: 0x7f454c46@gmail.com
Cc: linux-mm@kvack.org
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Link: http://lkml.kernel.org/r/20170306141721.9188-2-dsafonov@virtuozzo.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/mm/mmap.c