From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756965AbdKGKiQ (ORCPT ); Tue, 7 Nov 2017 05:38:16 -0500 Received: from mga02.intel.com ([134.134.136.20]:22799 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756957AbdKGKiM (ORCPT ); Tue, 7 Nov 2017 05:38:12 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,358,1505804400"; d="scan'208";a="333116363" From: "Kirill A. Shutemov" To: Ingo Molnar , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" , Kees Cook , Ingo Molnar , "H. Peter Anvin" , Thomas Gleixner , Nicholas Piggin Subject: [PATCH] x86/mm: Fix ELF_ET_DYN_BASE for 5-level paging Date: Tue, 7 Nov 2017 13:38:04 +0300 Message-Id: <20171107103804.47341-1-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.14.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On machines with 5-level paging we don't want to allocate mapping above 47-bit unless user explicitly asked for it. See b569bab78d8d ("x86/mm: Prepare to expose larger address space to userspace") for details. c715b72c1ba4 ("mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes") broke the behaviour. After the commit elf binary and heap got mapped above 47-bits. Let's fix this. Signed-off-by: Kirill A. Shutemov Fixes: c715b72c1ba4 ("mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes") Cc: Kees Cook Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Nicholas Piggin --- arch/x86/include/asm/elf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h index c1a125e47ff3..3a091cea36c5 100644 --- a/arch/x86/include/asm/elf.h +++ b/arch/x86/include/asm/elf.h @@ -253,7 +253,7 @@ extern int force_personality32; * space open for things that want to use the area for 32-bit pointers. */ #define ELF_ET_DYN_BASE (mmap_is_ia32() ? 0x000400000UL : \ - (TASK_SIZE / 3 * 2)) + (DEFAULT_MAP_WINDOW / 3 * 2)) /* This yields a mask that user programs can use to figure out what instruction set this CPU supports. This could be done in user space, -- 2.14.2