Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1062253ybl; Wed, 4 Dec 2019 16:11:29 -0800 (PST) X-Google-Smtp-Source: APXvYqzaqYgzmYiICA71Wta8nVcMNM5odj/R31J70TEq/vy5foY6DA/8qVjEKr7s823IcMzozEWd X-Received: by 2002:aca:fdc2:: with SMTP id b185mr3952187oii.74.1575504689333; Wed, 04 Dec 2019 16:11:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575504689; cv=none; d=google.com; s=arc-20160816; b=GEAv5bDAUvwLR7iPZJIviEbaRbmCs6oT3IQAf2yOvhrR/H/m0vzE6difu6myVSe8qU 2XG0UJYbfoi58Bkv/4yJbGDZQt/LhgUev2mUhkFRvx3vG9nSF4x8gyrGa7aBUY7pFYVR UXNOatxg3OeLwsm2Ayje70nL4WZb90QwXRnGHdhaZ0nxcdAZPFcnMphV0uJhs2qWJiuo g9cp8/gHHW3niZn85QNsy34xldDW5blI4tfL5HmoPYBbswLBtKjEq4xCSSAdJRAoc6hk 1slE9FuANKc8CfNwAwyql5QEny4H9Pd5Qu+Cnkhvreo2ivyL41Geym5N4qpt4m4V7TPG wX2g== 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=CyqJWPK5gXiDkj7pmzxZFEFTPFB7rpHSJzIvAweXZ1A=; b=nm6hfVxbTY5g5liZW8JazWNXysmbZvutvHjMYXvk7KXLBp9TxUdBpMAm0Bl+VjDfnF ir5WJGKDHmj9B+7CM7Tw4tGE33dzLVMU5Y0Xc1wcF9tI1C1KrxbJZSPLQ7WQDd2RVLTX chDSl0T0kWfVL0TsJJzLlV/R/T2ZoGa7lHDL6RCFsiOJWhJ9jNoxWlER5tGdqKlgri+s utpxuaqS/uREQ9seqIyRgFeZx7Ny6ivRCEVzsuy1EZSWhIyUwYWdSkX5h3rch239llR3 KLrLzIo86BdafJWEq2bRCIEgtr2YLUN/OYjDSlYiOYJudvHzP3crJqkVx/pmrs8vwV3X sAaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=An6EKBfY; 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 i6si2485917otp.5.2019.12.04.16.11.17; Wed, 04 Dec 2019 16:11:29 -0800 (PST) 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=An6EKBfY; 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 S1728724AbfLEAKf (ORCPT + 99 others); Wed, 4 Dec 2019 19:10:35 -0500 Received: from mail-pj1-f66.google.com ([209.85.216.66]:36160 "EHLO mail-pj1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728656AbfLEAKZ (ORCPT ); Wed, 4 Dec 2019 19:10:25 -0500 Received: by mail-pj1-f66.google.com with SMTP id n96so500197pjc.3 for ; Wed, 04 Dec 2019 16:10:24 -0800 (PST) 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=CyqJWPK5gXiDkj7pmzxZFEFTPFB7rpHSJzIvAweXZ1A=; b=An6EKBfYvskuNlarkZw8jmwWOHMO23mba1ZDMioIp6NWW+BYGhM0azn1Tj5l0aSL3l F84yQ1vmqcaKNJ8NVSbhIx2+fPjAVurVTHG7H+k9UgRIebIWnlVc93mV69v1aWfsM7R9 PDaE08TiD3RYOGNFDjF8MurzqNd0oyu9Pza+w= 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=CyqJWPK5gXiDkj7pmzxZFEFTPFB7rpHSJzIvAweXZ1A=; b=tAAwqw5VchKp2MYlFMrSfK+CVfgWx9scaklOpxDi6zuNVM/GhxDhC0zSJNH76q1GoS Fxh+fa4aYVCB0c/WmgIXZ2jQcEYc+nRUAiTBNwnee2bSTvKRpEKCJlHL8didbF9BIzyr 6Y01Ag458AG0Z3T/XpG22gYRE9TNmqmwYuhn9oJdqbp5d/RSh27GkG6tkRTmYtxVRBRh oCDh040JrVDSqXVHmejU2FQVomFI+zq01eRkPHhJxR2Z0lXPoJL420A6x3XZ4EWJrEGe F5jf0/7xSoG0vk4lmBI8f32i/xfrLjyTYzZNQnkkjQqPPR7ZazpL7NDPaT2Dh/8nnpRl fzSg== X-Gm-Message-State: APjAAAUGmyH0kvuNNWDrUezbvgWKud11orJWykp/cWi6jlMqUrtMomLP Zrz/fULf9clJ1H9OAZysuFA8Rw== X-Received: by 2002:a17:902:9a97:: with SMTP id w23mr6163243plp.79.1575504623796; Wed, 04 Dec 2019 16:10:23 -0800 (PST) Received: from thgarnie.kir.corp.google.com ([2620:0:1008:1100:d6ba:ac27:4f7b:28d7]) by smtp.gmail.com with ESMTPSA id 73sm8422303pgc.13.2019.12.04.16.10.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Dec 2019 16:10:23 -0800 (PST) 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 v10 09/11] x86/power/64: Adapt assembly for PIE support Date: Wed, 4 Dec 2019 16:09:46 -0800 Message-Id: <20191205000957.112719-10-thgarnie@chromium.org> X-Mailer: git-send-email 2.24.0.393.g34dc348eaf-goog In-Reply-To: <20191205000957.112719-1-thgarnie@chromium.org> References: <20191205000957.112719-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 7918b8415f13..977b8ae85045 100644 --- a/arch/x86/power/hibernate_asm_64.S +++ b/arch/x86/power/hibernate_asm_64.S @@ -23,7 +23,7 @@ #include SYM_FUNC_START(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) @@ -116,7 +116,7 @@ SYM_FUNC_START(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.24.0.393.g34dc348eaf-goog