From patchwork Mon Jun 25 22:38:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Garnier X-Patchwork-Id: 10487463 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 0F4CC60230 for ; Mon, 25 Jun 2018 22:45:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 00A49286B1 for ; Mon, 25 Jun 2018 22:45:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E905B286C0; Mon, 25 Jun 2018 22:45:20 +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=-15.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C3E3286B1 for ; Mon, 25 Jun 2018 22:45:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934271AbeFYWlf (ORCPT ); Mon, 25 Jun 2018 18:41:35 -0400 Received: from mail-it0-f74.google.com ([209.85.214.74]:59310 "EHLO mail-it0-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934171AbeFYWl3 (ORCPT ); Mon, 25 Jun 2018 18:41:29 -0400 Received: by mail-it0-f74.google.com with SMTP id k129-v6so8959897itg.8 for ; Mon, 25 Jun 2018 15:41:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:date:in-reply-to:message-id:references:subject:from:to :cc; bh=DWmGvA0lR6w7y5ULZBpH8CF04xCV2RqblUumbO+kjTU=; b=bFiGmUWPHjGBuOHdMmFSusIQ4RcqGqhbbC+KO7++F6XJa+rf+G/3sdSMCGx49hQWap H7c2uu35f4WsOO6xSPy/vZ0iJ6bbZcpqkrEkBUpfuUtlPADE8NNGlM8twAK8lfavlb8J 8ID9qhlzz4joD/ksZjgFL2hQfRPt/mQZkgBVF6c1hOtF9e4a1eixZl6FBdSB6AeHDGsz oCAwSIreuCI8DA1JmKJcgsEob73EknV752zZQ4+aszUshK0UJ6JNe0PzZxjB2zV+srSj /D0qDEL/nmED3KCzRWDM2SzpEBdqpoahCIuO5EAP7HctBdMCXR5iljEevMEFplg0lhrp VZcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:date:in-reply-to:message-id :references:subject:from:to:cc; bh=DWmGvA0lR6w7y5ULZBpH8CF04xCV2RqblUumbO+kjTU=; b=Ea6A6cefTz9ehfDFlnnqT2SOXDfBjf+PYW5B0Bt8yPigqMYn2gVFZob500sM8JnLt3 2teYMcxHi6ZXEL1G8AHT+bc2zv37hvHMbMW0S6pQ1B82/p9AbIppdC9j5rKAUaBYd1Jf 1AwQ7lH0oxhJ2MaGgRPe813UffE04/13MHrjTplziFncFtqve7qy4ugd/93MLlhWntfZ 5HIHYkWMEzoRcRW6+URZSEM6ixkNE1G/9S/RhtxzFqPQcoz/3leD64x/wJo1xaxXi/71 SJyeX7fMARIlmr48ZK3mNGRgOqHEvVGDPnYjwVF/l+IqjCHAUAptfEkWfYqJ9vML3+4n oReQ== X-Gm-Message-State: APt69E0EwJqaasu9A9w1zXBsqQketw9rQeuHdZ9iy6ECywohpeQVM4Dx C67lDPf0l0cN2dv1c0EPB8km0jQELZDEKQ== X-Google-Smtp-Source: AAOMgpcMfOgsNjQ3gS57e24UnR3P+4f45NGqjZpwIO8a6CATrwhRFOqvNBr8LlS8GSAmtKv643o/RgJRATOtow== MIME-Version: 1.0 X-Received: by 2002:a24:6b15:: with SMTP id v21-v6mr1197132itc.1.1529966488785; Mon, 25 Jun 2018 15:41:28 -0700 (PDT) Date: Mon, 25 Jun 2018 15:38:59 -0700 In-Reply-To: <20180625224014.134829-1-thgarnie@google.com> Message-Id: <20180625224014.134829-12-thgarnie@google.com> References: <20180625224014.134829-1-thgarnie@google.com> X-Mailer: git-send-email 2.18.0.rc2.346.g013aa6912e-goog Subject: [PATCH v5 11/27] x86/power/64: Adapt assembly for PIE support From: Thomas Garnier To: kernel-hardening@lists.openwall.com Cc: Thomas Garnier , "Rafael J. Wysocki" , Pavel Machek , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org 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 extend the KASLR randomization range 0xffffffff80000000. Signed-off-by: Thomas Garnier Acked-by: Pavel Machek Acked-by: Rafael J. Wysocki --- arch/x86/power/hibernate_asm_64.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S index ce8da3a0412c..6fdd7bbc3c33 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -24,7 +24,7 @@ #include ENTRY(swsusp_arch_suspend) - movq $saved_context, %rax + leaq saved_context(%rip), %rax movq %rsp, pt_regs_sp(%rax) movq %rbp, pt_regs_bp(%rax) movq %rsi, pt_regs_si(%rax) @@ -115,7 +115,7 @@ ENTRY(restore_registers) movq %rax, %cr4; # turn PGE back on /* We don't restore %rax, it must be 0 anyway */ - movq $saved_context, %rax + leaq saved_context(%rip), %rax movq pt_regs_sp(%rax), %rsp movq pt_regs_bp(%rax), %rbp movq pt_regs_si(%rax), %rsi