From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: ARC-Seal: i=1; a=rsa-sha256; t=1520974822; cv=none; d=google.com; s=arc-20160816; b=nWOy7Yq7/Gc58EQetfvhOW/Aiz/ZK4wNc9BP5/25z51zGGfM3fXGTSwj2G/T4TTLP9 Vi3MP5fzboA6BVpehR09JKGeYLU5XSUuZsSEBTk4lmZa0u/dB/5ZwO/IWbeq1du9uKtL E5fPr/s+dxiSmoG1QTZA1QhOcZvsoprto9RtvnX4yLlwTy7FuFf9ubJVq4EyY2Iqr/eQ 8xDN+j/9c6PeErQQERifjpp4bEdg6VjA3cs9vc36LoZe07gYGgQYBXCKqglNw/LS+36f hgMWM5X/CAUu8vpckAu4UVxgCwPB9AVC3bjhT1GoMfTI6b9Ge8LCVVrkJBKwT3FELFan FTqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=anq4y8bNxKR1s7622CFUgJbP/owDQD029FmsddOFQgw=; b=cf9KH/2ZTiNa4y+WhFfI8ElA3aqJj7UQIOevFbk91pmSlQugd6azwBWpcj7jV0Fc8d 2F8faKKep6fr7K/X5+7OTtwVhYihHi2ir/hzjw5zd+9WhIruWpOz9fIcN5/HC66XektW VuRD1UandZD70DR1nrCgZGJYx0LTGXDZ9W1IshMDql9H+OOUQoLKkEBLBUj9uMutaom3 vL1HFDajyuJtgFod0Enlg3aAndWhyv+DdEOKnZMMe+HNI7zx3jqcLa0P3/sD72KZ20pB SquoQzzZD5dz5QQfXZvqtSBWQKb3M27RXVasLwuMhzMcJWvEhOxDvXsh3ivvR6PzHaiz oBSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=QRQEv8yT; spf=pass (google.com: domain of thgarnie@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=thgarnie@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=QRQEv8yT; spf=pass (google.com: domain of thgarnie@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=thgarnie@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com X-Google-Smtp-Source: AG47ELv0Q19u3sURJZASC9scNMYyhWeFnCuLSZ1xreSV8lITsSOeooGfUAo23piLUe1+nIhx9gw/yg== From: Thomas Garnier To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Greg Kroah-Hartman , Kate Stewart , Thomas Garnier , Arnd Bergmann , Philippe Ombredanne , Arnaldo Carvalho de Melo , Andrey Ryabinin , Matthias Kaehlcke , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Juergen Gross , Alok Kataria , Steven Rostedt , Tejun Heo , Christoph Lameter , Dennis Zhou , Boris Ostrovsky , David Woodhouse , Alexey Dobriyan , "Paul E . McKenney" , Andrew Morton , Nicolas Pitre , Randy Dunlap , "Luis R . Rodriguez" , Christopher Li , Jason Baron , Ashish Kalra , Kyle McMartin , Dou Liyang , Lukas Wunner , Petr Mladek , Sergey Senozhatsky , Masahiro Yamada , Ingo Molnar , Nicholas Piggin , Cao jin , "H . J . Lu" , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Dave Hansen , Rik van Riel , Jia Zhang , Jiri Slaby , Kyle Huey , Jonathan Corbet , Matthew Wilcox , Michal Hocko , Rob Landley , Baoquan He , Daniel Micay , =?UTF-8?q?Jan=20H=20=2E=20Sch=C3=B6nherr?= Cc: x86@kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, virtualization@lists.linux-foundation.org, xen-devel@lists.xenproject.org, linux-arch@vger.kernel.org, linux-sparse@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, kernel-hardening@lists.openwall.com Subject: [PATCH v2 05/27] x86: relocate_kernel - Adapt assembly for PIE support Date: Tue, 13 Mar 2018 13:59:23 -0700 Message-Id: <20180313205945.245105-6-thgarnie@google.com> X-Mailer: git-send-email 2.16.2.660.g709887971b-goog In-Reply-To: <20180313205945.245105-1-thgarnie@google.com> References: <20180313205945.245105-1-thgarnie@google.com> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1594857695364322850?= X-GMAIL-MSGID: =?utf-8?q?1594857695364322850?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: Change the assembly code to use only relative references of symbols for the kernel to be PIE compatible. Position Independent Executable (PIE) support will allow to extended the KASLR randomization range below the -2G memory limit. Signed-off-by: Thomas Garnier --- arch/x86/kernel/relocate_kernel_64.S | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S index 11eda21eb697..a7227dfe1a2b 100644 --- a/arch/x86/kernel/relocate_kernel_64.S +++ b/arch/x86/kernel/relocate_kernel_64.S @@ -208,9 +208,11 @@ identity_mapped: movq %rax, %cr3 lea PAGE_SIZE(%r8), %rsp call swap_pages - movq $virtual_mapped, %rax - pushq %rax - ret + jmp *virtual_mapped_addr(%rip) + + /* Absolute value for PIE support */ +virtual_mapped_addr: + .quad virtual_mapped virtual_mapped: movq RSP(%r8), %rsp -- 2.16.2.660.g709887971b-goog