Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp7157041ybi; Mon, 8 Jul 2019 15:48:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqxsC4kmWzsOv50ZLFMNy0RSz8VhSddDYXzjv5HHFXSnaFWnZnqocJc8E/jYLmPwk8kfUBPL X-Received: by 2002:a65:5248:: with SMTP id q8mr26374198pgp.259.1562626103060; Mon, 08 Jul 2019 15:48:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562626103; cv=none; d=google.com; s=arc-20160816; b=YqmW+FuduOPUdP9AUmXciwewTjHCOQSm7ftoiPrR2YL7vQ+r3Hn/FgAdgKAuSsQqU1 UpZ000Pl5VP7618PpVACQOS4NZQs8b64VxVuGBagc0U6xS/qqB/x2O6pQ1zBw3PxgU/H 17QxdzZBr2l6taYPhnR5itnDh+eFvUjRj53lvVVkDyRR7iYn/nT0WSOcwlBUtPXJKhb6 8kUZF4hZbuPM/nNyfKUefASWrtrh8dFkFhcvvKvxLfla8ueZ1ij5suKZ8bPDri9Eg7v5 9zQJtK71FuEKBRJ+eTnrWP1c3rn9Q3zZ6BrLMhRrUeaG3+Gb38qfa8grli2c/43xQsou FunA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=05kLYEGL6zDnQBrhitySxcjxpx75EpSey7IqCfc4g7Y=; b=VC/ts59Rfnx7mTOdn0QFgepEtGCO70iwK7mOrPIbd1XiA6UvdbvbM+3mZUrbP4lsvW gvL0mRQNAUPyM1U7ZtU7F36N7X+uXzPMhv0JFIKgSOkuSjZpRoRbG77EFbIZzZr4RsLf 539HY05d5h1ba0sPaif3JqCVaQx5QaJUCG9VAcpj4ty2oq9XNabUDIzrPq1gvGB1ZvNI Bmg1z+RQIuviojzATOMbqzt15CoOhvdgJU3nkkHq+8Q+izEqQePygHY+Mys5/l42JIGM 6y1v4a/rGRp/6m3IdFldx7eUiP7QVLU+f0Auio4DNE8Dcaszkk/30K2qHIS67RFrzTvO ctTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=CdmYZ+R4; 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 s12si20106281pfm.113.2019.07.08.15.48.08; Mon, 08 Jul 2019 15:48:23 -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=CdmYZ+R4; 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 S2391603AbfGHTf2 (ORCPT + 99 others); Mon, 8 Jul 2019 15:35:28 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:38649 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730494AbfGHTf2 (ORCPT ); Mon, 8 Jul 2019 15:35:28 -0400 Received: by mail-ed1-f68.google.com with SMTP id r12so15574231edo.5 for ; Mon, 08 Jul 2019 12:35:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=05kLYEGL6zDnQBrhitySxcjxpx75EpSey7IqCfc4g7Y=; b=CdmYZ+R4NaCTYLRuUqV+ZplTPmWNEeV78mk1RHz06cZF9hxn1tMkCUb6sT608+XxAH W6tND2hfmq3AihhktTKKTWACSInk5tBiNdZFydlpSd1vdcDTT7CNGoytTET5setApSqm bbuFAOK06rv05ILYMO0cypmbC6FbjA4I8Drac= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=05kLYEGL6zDnQBrhitySxcjxpx75EpSey7IqCfc4g7Y=; b=S8MyNqPRwdTpLskB4y6ClQHLlneHALiCCnsdq82GCD505YVQqyIR3eDoTtjFrtMiON ewAgT6ZBs6Qx/p9Alw/9At26AhQl334AFkRx9c4oP4gK3dDIDRxw1vKLyMQ0Uv7da+cZ 7vrRwiwvagM7u8hP+rnshVV67P9dElMP1YocK14gXRvRGi8wQY+P7yRUOQHlKQmWdY0U 1FJq1jfoHiQBuwksUsZLS1T5jXD7bQb/OE8VoB1wN9UeGsYpnfMuQ0DTAmZ5wp0mJMzd tOTRdnIADzKZmceUCGGCm0jNXvkevyoD600xYJhSC99K5IHe1A591Bia7ls49mqC0LT2 NPKg== X-Gm-Message-State: APjAAAUgpCVC1vXKmEyoIK+UWETQ7Bzf+Z1ftYWWuRJnq5vj3UIjdf1R DczK3jwJQOg8KT4NO2TyHnKpP3HMK7o= X-Received: by 2002:aa7:d781:: with SMTP id s1mr22095324edq.20.1562614526452; Mon, 08 Jul 2019 12:35:26 -0700 (PDT) Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com. [209.85.128.47]) by smtp.gmail.com with ESMTPSA id j11sm3710864ejr.69.2019.07.08.12.35.25 for (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Mon, 08 Jul 2019 12:35:25 -0700 (PDT) Received: by mail-wm1-f47.google.com with SMTP id g67so734097wme.1 for ; Mon, 08 Jul 2019 12:35:25 -0700 (PDT) X-Received: by 2002:a1c:e009:: with SMTP id x9mr17756743wmg.5.1562614525190; Mon, 08 Jul 2019 12:35:25 -0700 (PDT) MIME-Version: 1.0 References: <20190708190930.GA16215@avx2> In-Reply-To: <20190708190930.GA16215@avx2> From: Thomas Garnier Date: Mon, 8 Jul 2019 12:35:13 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v8 06/11] x86/CPU: Adapt assembly for PIE support To: Alexey Dobriyan Cc: LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 8, 2019 at 12:09 PM Alexey Dobriyan wrote: > > Thomas Garnier wrote: > > - "pushq $1f\n\t" > > + "movabsq $1f, %q0\n\t" > > + "pushq %q0\n\t" > > "iretq\n\t" > > UNWIND_HINT_RESTORE > > "1:" > > Fake PIE. True PIE looks like this: I used movabsq in couple assembly changes where the memory context is unclear and relative reference might lead to issues. It happened on early boot and hibernation save/restore paths. Do you think a relative reference in this function will always be accurate? > > ffffffff81022d70 : > ffffffff81022d70: 8c d0 mov eax,ss > ffffffff81022d72: 50 push rax > ffffffff81022d73: 54 push rsp > ffffffff81022d74: 48 83 04 24 08 add QWORD PTR [rsp],0x8 > ffffffff81022d79: 9c pushf > ffffffff81022d7a: 8c c8 mov eax,cs > ffffffff81022d7c: 50 push rax > ffffffff81022d7d: ===> 48 8d 05 03 00 00 00 lea rax,[rip+0x3] # ffffffff81022d87 > ffffffff81022d84: 50 push rax > ffffffff81022d85: 48 cf iretq > ffffffff81022d87: c3 ret > > Signed-off-by: Alexey Dobriyan > > --- a/arch/x86/include/asm/processor.h > +++ b/arch/x86/include/asm/processor.h > @@ -710,7 +710,8 @@ static inline void sync_core(void) > "pushfq\n\t" > "mov %%cs, %0\n\t" > "pushq %q0\n\t" > - "pushq $1f\n\t" > + "leaq 1f(%%rip), %q0\n\t" > + "pushq %q0\n\t" > "iretq\n\t" > UNWIND_HINT_RESTORE > "1:"