Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp5019523ybi; Tue, 30 Jul 2019 12:16:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqwEIvvMrkMsrFi4+cSBrGmq9LhqKTFNqIUvU+J74BTsTMXe3uXgzUrZ8rJQ8wBPsoUck8BL X-Received: by 2002:a63:f857:: with SMTP id v23mr85300290pgj.228.1564514202486; Tue, 30 Jul 2019 12:16:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564514202; cv=none; d=google.com; s=arc-20160816; b=gBEeoFsWoHBnW4nAcj3BSyz2DzYAUOEOBB7/vmlJrLTDIYVOtyP+Wp5shGdfnomwmG tIjHG9AcvwlIoFo0wCABqtMvZ7ae5R1qssZZlLo/VdMdEHMj+Pshbydvb2sViePVq6Dz Q6lQHmwv/dOfQ1kJPzHEUqjMe93vo8fbqsvdXKM7uragIncrxcjXqXVsgZ1ZoNIai9T3 LWDOoymp9uJHwi9cqyXWQWhHbHamoQ5G/ND/mLVsrixLn9AQuZD2d0L+0yUip4owlMJJ 8I4bwaMdDg53+uBR9u50HnsQJRaPnuVlKB96tyeoyZEgnjOt3YznYqEYh2GtqD6ty4U+ 0MFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aCFi9VKfA/regOH6ME0h7V2OJPrhlZ4OE3HFuZl/Mr4=; b=0Q28sdBGss/j3PkF6WBUKOMRqGmnBIJII7fv8oJv1EY9CpYl6q8Ifr2/uoVdzJt6X9 PXm2VvDKsKb3I6pjoWbJUxzBB5g+/gJOcqgRIK2aaL/yDZIDqODXR//FIEG0menukB7Q 3TO2pN03g0Ld5OxNjU6TKRJWH+iRQDeiZORzp3qS+U/USuy58c/nwmmuOwX01ijONwhj 1mHLpd/muUJCsZ3Eq8RaZYgdcB+qWuu1PyKtE+T1CIsyxNek49yvQpEvCL3uaRkxJHZ2 MsOwNuraG3DP5zykHGqxLmZBdaD18nltSapytOVrsCOs2i/hLteWGPWtZQHwVALKN8Sn VWZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=hk0Bac0a; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x9si32109814pfi.211.2019.07.30.12.16.27; Tue, 30 Jul 2019 12:16:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=hk0Bac0a; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388332AbfG3TN2 (ORCPT + 99 others); Tue, 30 Jul 2019 15:13:28 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45429 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388264AbfG3TNZ (ORCPT ); Tue, 30 Jul 2019 15:13:25 -0400 Received: by mail-pf1-f193.google.com with SMTP id r1so30327122pfq.12 for ; Tue, 30 Jul 2019 12:13:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aCFi9VKfA/regOH6ME0h7V2OJPrhlZ4OE3HFuZl/Mr4=; b=hk0Bac0aiWQasaW/82OqlXyeS+zRRbeGWMF9iYoYCCjmyk5hKfhbErMAfoM104i7Br TdpwZFEl9pU+frxz1cazoSP6L1BNAC+8jncLJVwuFEsDynqzb3OP7vNis0EU/ikkPW8m /LeN2upB3IFugt/kUzhj6IfHluZI3rXDFFkRA= 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:mime-version:content-transfer-encoding; bh=aCFi9VKfA/regOH6ME0h7V2OJPrhlZ4OE3HFuZl/Mr4=; b=LxYznkYhsYURI7Gr7kA7OCQGQ86v/MM0SiYU2AFWtT6YACaha4Nw2W3bfB4FUVdUMo 5nWmZDbdgznIGT3L0lN+OI+5EPQQIqPSkOAM0hM0Y36flM8FSkXpRHAVHEMabdAfizkg 6JYzL4EejFVUivEmQ8zfhB1cxSyHZQoXw8GET5Xnv4q2IPZBoyrwLfmEzpdlICVAzxI3 7nJabwACSH1+QmriAJSiWRFqR1YXlExzHQcoflHlI7eqcpBbg2YnAiVdt+eidT9OUMWF gPwK8bVUE2LIZVM0FK+tmaBogrFKWRemo5ae6eVIJ2eNYmeSjC1+4Sis5uH7CzBmURU1 DJMw== X-Gm-Message-State: APjAAAV1RdPL8qvzXip/yJfpaM2WcA/thNqba50ADEw/ikZ6uVUXYnYw eEgreNJJQpzl1qAAIjD495z4mw== X-Received: by 2002:a65:57ca:: with SMTP id q10mr113599135pgr.52.1564514003446; Tue, 30 Jul 2019 12:13:23 -0700 (PDT) Received: from skynet.sea.corp.google.com ([2620:0:1008:1100:c4b5:ec23:d87b:d6d3]) by smtp.gmail.com with ESMTPSA id n89sm84649540pjc.0.2019.07.30.12.13.22 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 30 Jul 2019 12:13:23 -0700 (PDT) From: Thomas Garnier To: kernel-hardening@lists.openwall.com Cc: kristen@linux.intel.com, keescook@chromium.org, Thomas Garnier , Pavel Machek , "Rafael J . Wysocki" , "Rafael J. Wysocki" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , x86@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v9 09/11] x86/power/64: Adapt assembly for PIE support Date: Tue, 30 Jul 2019 12:12:53 -0700 Message-Id: <20190730191303.206365-10-thgarnie@chromium.org> X-Mailer: git-send-email 2.22.0.770.g0f2c4a37fd-goog In-Reply-To: <20190730191303.206365-1-thgarnie@chromium.org> References: <20190730191303.206365-1-thgarnie@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 below 0xffffffff80000000. Signed-off-by: Thomas Garnier Acked-by: Pavel Machek Acked-by: Rafael J. Wysocki Reviewed-by: Kees Cook --- 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 a4d5eb0a7ece..796cd19d575b 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -23,7 +23,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) @@ -114,7 +114,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 -- 2.22.0.770.g0f2c4a37fd-goog