Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp8235518ybi; Tue, 9 Jul 2019 11:41:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqwauFOsuhjbfiHAXAtUIFnuzSVPFVnPyLk5wpzM6JhUtWJeyEQUdS3G1o+1cb4gTsz+VWSR X-Received: by 2002:a17:902:9b81:: with SMTP id y1mr35262389plp.194.1562697660179; Tue, 09 Jul 2019 11:41:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562697660; cv=none; d=google.com; s=arc-20160816; b=a4m7aViTbCilhIybPtaAluX1HL9V1xgN1ZGJdP1hDMpwp+DzDV6lZ4MB0Ns6mJOBG4 XFI8F1DvMJS2aeBsR8ylXWtqAk6DNr36yeKkZtuP7vvFjyEu78LQcx6O6Y3/8GOkOdgE kFYhh11bEzOdLQYJUnti9/THkqSxeS2Tft205VlAhQ6NPj5Cf93irG3kJpmubFCSmews T5zPBEpw9qmV4NmmuouzySXWt+8MdLfn7Bd97p1Rm5EIc9hYdWF10y23Xa86YW8ZoYgL gvo8YJi8qsv7jSVIV04jdTWO2BB8CViEMWQmGs1bZDTR6Imyr1HSNTBJ7YoVaJpQhdDM 1tLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=C2IvA+TdolzbC7+a5rr2lhrfnz6gFaLE+xuZf46t8K0=; b=ETsSgp1RrXVnnr3PZlU8IOiwXFRTsHatl2wdornxIwvpi+bndvgiiKXiQngoJfbaa7 dtSHmb2J238XtOyF8ui/eZvlguvweVNYgXvoBMyGZvLgIKMOeLnj/hLeac1AlW3jbrZP PQHm0XtZ4C6Q9Euu4PAbz4fiwdYV6ryS/XUv/QTLkVj5NKjcgBrHZSEChXhSlR7LwtcC 2zSzjXMf/jL4CemZyhUj4HXVopC6TN862/mVgzMJgsB1Taory0ucoRseW2kJtPU+aTml UQyydv6pPaAJkSs1wxhJt3j2tZey8ncT7qIuChr/hJjaZmxA/g1lQ8dSN2n+tVn9901u D0sA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=h0zyBu6d; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w22si15532694pfn.118.2019.07.09.11.40.43; Tue, 09 Jul 2019 11:41:00 -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=@gmail.com header.s=20161025 header.b=h0zyBu6d; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727034AbfGISj0 (ORCPT + 99 others); Tue, 9 Jul 2019 14:39:26 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:51503 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726133AbfGISjZ (ORCPT ); Tue, 9 Jul 2019 14:39:25 -0400 Received: by mail-wm1-f65.google.com with SMTP id 207so4100348wma.1 for ; Tue, 09 Jul 2019 11:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=C2IvA+TdolzbC7+a5rr2lhrfnz6gFaLE+xuZf46t8K0=; b=h0zyBu6dXQ1Lpt6O4ND5ATNxcq+KZKxYFDq9HbaasvroJoj2yWKQGMaptrD8Lei4WQ LSMsvzBY99h2qz8V5Bt+YpMUSc+ivzsNOxqMM7qBbJlRY7ZHYanFKXrtAw99dZNsT/bH BPIhXYPvbrWDeMZ0FTuLKXmV2olIzq/z1yUyVefUW3j48k8jR9saefCl5YDp2aH3YWvU zvuqyvxMSyEdOpW975RdOd2MmsZE8IGpyLOiyqgcpClAw9D6xToMxeX581kggJoqveIA LacgK7gUo56vseyKw8fgF0d5XoDlLYW7Ex+0uD4LsWIF/hijq7OE8bJlbMInD/mkFKvZ j15g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=C2IvA+TdolzbC7+a5rr2lhrfnz6gFaLE+xuZf46t8K0=; b=dJubkPoN+bFHCkg+y3KtE1P4xuMGm+OHIm3VsMglNy5jMVGu+Gw7w6pT16OyT13Np9 jP/ArjJdgqrZZ/j4M9j4n8twV/VmDVHXf9YkdHdZJVPxAR5Y+Z4ySr4i4VJhFvoBRyFp JVfWSYrSZLFCiBIpBFQpztQnAexhQkf4Sex4HDhRCdBUogrcb/KaIBlof58+wNG6pHSh utIWJuwVfHkXMiaurARKl6K7eL16K7yeHY95UOiuNOpp/OsXWjfQp9LwkV01Aqv57gQz rsHnG3kwUk5l3aBlZIO9t5kA8H9u9BHsvx42n4L31KUxCOlmtlih/T0SWSXhKmDw5Ej1 3Kzw== X-Gm-Message-State: APjAAAWlQHyVJ5u1V+RfssBqcDEyOdin65QccTCuj7XS8cWYZUkpt5vC c4YZ0Mn0T8aqvIUQNqguMHPWJZc= X-Received: by 2002:a05:600c:291:: with SMTP id 17mr1072135wmk.32.1562697564480; Tue, 09 Jul 2019 11:39:24 -0700 (PDT) Received: from avx2 ([46.53.250.207]) by smtp.gmail.com with ESMTPSA id b203sm4456425wmd.41.2019.07.09.11.39.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Jul 2019 11:39:23 -0700 (PDT) Date: Tue, 9 Jul 2019 21:39:21 +0300 From: Alexey Dobriyan To: Thomas Garnier Cc: LKML Subject: Re: [PATCH v8 06/11] x86/CPU: Adapt assembly for PIE support Message-ID: <20190709183921.GA27282@avx2> References: <20190708190930.GA16215@avx2> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 08, 2019 at 12:35:13PM -0700, Thomas Garnier wrote: > 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? As long as iretq target is not too far it should be OK. I'm not really sure which issues can pop up. IRETQ is 64-bit only, RIP-relative addressing is 64-bit only. Assembler (hopefully) will error compilation if target is too far. And it is shorter than movabsq. > > 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:"