From patchwork Tue Mar 13 20:59:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Garnier X-Patchwork-Id: 10280769 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0E83A6038F for ; Tue, 13 Mar 2018 21:02:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 015562675C for ; Tue, 13 Mar 2018 21:02:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E91A526D05; Tue, 13 Mar 2018 21:02:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from mother.openwall.net (mother.openwall.net [195.42.179.200]) by mail.wl.linuxfoundation.org (Postfix) with SMTP id 24C132675C for ; Tue, 13 Mar 2018 21:02:48 +0000 (UTC) Received: (qmail 20204 invoked by uid 550); 13 Mar 2018 21:00:42 -0000 Mailing-List: contact kernel-hardening-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Delivered-To: mailing list kernel-hardening@lists.openwall.com Received: (qmail 20101 invoked from network); 13 Mar 2018 21:00:33 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=anq4y8bNxKR1s7622CFUgJbP/owDQD029FmsddOFQgw=; b=QRQEv8yTM+oye05G1vyQkNUsrH555ar4MfJCRvTxKMJTFUkFTk9H6P65ffhltQguXM mSLimsEbRu3hmquc5dHxl2zXHCjDDHLMpLuxuYsFuJ1GcjNBfdMePiqhjIjKs9yfyTvc JMsZ5KSrfAWWC1BWRutI48lecWpZs8DqxY0ti16zzJjjhvldVcv0uGri+vAqKgHVYEVQ eRxn1+scBfKq+qfMXzQLCjIGOK7zdkF+sabymrfYpHsDL21moISO+zWobgV9G+brPrW8 ro+s9Of7FIXe1DtJFNFdP2w+xK6Lg+4BxbRHAtxO7K7QkxQnqdslJ5b7aYEt/Qw8TqP3 FhfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=anq4y8bNxKR1s7622CFUgJbP/owDQD029FmsddOFQgw=; b=DEukLwt4vO0EKr1/1KXY07kMtbIwTVxjnxWvMgZbfINwFyg4W2bH3ijwTxm3h/PJO4 IbUNLTmjZvlpeJ4bbTUgUbG592ds9Nka9XyY0Om/l6OBlFk6yDAs6DINAaPhyBfM6OwD m84WQIxg6/EJGt+tttx3ulpY7XXq0Jwr8gWoI1G7imJychZTI7hE+KGVYZnfZpRpYCrA 0Hew1alaMAZa8TkkdL/xsv30mgn1TV4nqSZhHaiCKpa8JQyFBCg4KJjqLoyUmakkgMF1 XRV+DxYbTFEJof3BUIdb4TGQ70MYws0GhwnxUnp/Yfd+7S0gejdduGzh7OJW+d5j4ZZH 831Q== X-Gm-Message-State: AElRT7E0z9XRUbe5opD5iYk6TmVkKWZXeLkqVEU92NUHzxa/Jx/GB2L4 ifGDqA+5JJTWzxnH6pOsbh5cpQ== X-Google-Smtp-Source: AG47ELv0Q19u3sURJZASC9scNMYyhWeFnCuLSZ1xreSV8lITsSOeooGfUAo23piLUe1+nIhx9gw/yg== X-Received: by 2002:a17:902:bc41:: with SMTP id t1-v6mr1770578plz.56.1520974821592; Tue, 13 Mar 2018 14:00:21 -0700 (PDT) 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-Virus-Scanned: ClamAV using ClamSMTP 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