Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4265002yba; Sun, 12 May 2019 08:42:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqx2iu2vS+iAXzLcnBDpU99GbYXzcESC7MZoQoYSnYlPtFQH3aEfYJkCqIafZkOuIpTAkmCJ X-Received: by 2002:aa7:9ac4:: with SMTP id x4mr28067142pfp.43.1557675775727; Sun, 12 May 2019 08:42:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557675775; cv=none; d=google.com; s=arc-20160816; b=RpizdFjLbKXrRMk8a/ma7LBTnJFs4Pkd8lrX2mK6MiKPXdqc/R2PMDMRtFZRzKyKd3 PF0fMrh5DVqMYGCr+N7KvVfbTXWe8lAH3Xwvw9xVNEBAR4HkZABn0jc6Z/UYrKYyh90X McG2w6QiOvwpIP2gyNvQrLgiJMbhLqcm7tGTnFmNVSYRBqKam3bWyYVZfpXcf8NOUU+a iXzUmCh5HuLDL/isN/X1FoYjRwJ9NepEINs2amAQ6RH6s1O0FUt8zZYdCY7BTZXrnXUW kYd3AhFuMG20aeqGh7NdgDQMQpjSxBk1VBTjX6KhkqTBTKUSXHbRMCMx0ZKMYOJwTvo3 pWIQ== 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=1uG0bivhTUejUYCRrrklLeHk3N0BPLHnD725/cI68EM=; b=rs6qCApxcK5UjTmVEIoVnnpGa8L3jK52s/6RUDPXd7OUiufD9WDAcWmj02jIR8leyq 5+oGhjd4K7JhQaKx6gKF9cbdFVj8n02ddjA1sbxlrfykEHETeTrutpfqoHaMh3zdX1mT tJ/HFCfboefG4j1lENL+leRMG5+F7XLCE/zFsG8+Ng1ExhREGtPIqd9PeqiBr9TQ08so QTf2IoKRSZeYTQsIKbvWZpg057MJJoHcknwFdz3wDgQ2gHmk+XsT6oZlV8aT2QJckaIu 22wJUBYKSAm7aziIySZ1mgIuY0o4+7uasQP00VS5IYntiErxi7kTg4JPRZFJW/CXFPkq jcgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sJiwm9+K; 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 y3si12890422pgp.401.2019.05.12.08.42.38; Sun, 12 May 2019 08:42:55 -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=sJiwm9+K; 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 S1726669AbfELPlp (ORCPT + 99 others); Sun, 12 May 2019 11:41:45 -0400 Received: from mail-vs1-f67.google.com ([209.85.217.67]:45444 "EHLO mail-vs1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726529AbfELPlo (ORCPT ); Sun, 12 May 2019 11:41:44 -0400 Received: by mail-vs1-f67.google.com with SMTP id o10so6497742vsp.12 for ; Sun, 12 May 2019 08:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1uG0bivhTUejUYCRrrklLeHk3N0BPLHnD725/cI68EM=; b=sJiwm9+KPs7IRgLD8j4w62N2RmFZ1h0n4FhkeFXOTaRxUOiCyOT0/KzvQ3gLCEkUH1 1djUf7rJ9bpcpU6xPvfCUX5Y0ZNmrh8eC732/6AaHHvfIT9EoQ1lPCUm3uY2e24OKUnx GsHCfsFTMVXBut+R3LrniecbHpz/QHeJ4h7IiA0HmzKAhp4rfu9a6Ya66Y2l0gsKYTCs r+ZAeKLi6tKTwtcudZEOvvbFoXGdAhZRrBuPFC5NtJp9FemmZweDoAl1kIZEIp5vgek0 ceW2B0Tz6QDO6fI6CpzE7/vvXzOpOCdmwY1vzdhQXyYPXp5mDI6M5cju8XNhapYm7JRc AdVg== 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=1uG0bivhTUejUYCRrrklLeHk3N0BPLHnD725/cI68EM=; b=aGCAvKWaDC9wuVZT5myWkz5lbybV6fX0ez67dtasp81KyUf9B5eQfHL8Cl3cq+S5WV S2/Pz1enCqH+/9gjOmAHwthMzSUvgnd7tusiOeYdc1zZea+5xXBDpITBYVG/mlNfUAnx vaXZogtmmxaPCz1Qd55L4OQS4AjFCsidXU3Vwd+mKZ0B/jfX9aqplU3eXkWBomDoMmE0 j1nK8zbDLIybeO/lMhzUj7RVwYY9VF/iFuUWsAuHNiChUCHm/kl1clrFFYEwjyohB+Zu 2RkQQatSP9siQN8ZObvWPmKYW8/F+MBeHjuELSSNWx3ouu8Rz9/aGb2krP3LhnhRuXuD vsnA== X-Gm-Message-State: APjAAAUUURTk1TYKaq/PTB4pPTMddu8a/3kfsotrdeVgDBgD+mC8A7DE K7uOVf3+e84H9oT6CGkfoQTmH2PNILK5j3GWQxU= X-Received: by 2002:a67:ca1c:: with SMTP id z28mr659462vsk.6.1557675703831; Sun, 12 May 2019 08:41:43 -0700 (PDT) MIME-Version: 1.0 References: <20190408163319.10382-1-vichy.kuo@gmail.com> In-Reply-To: From: pierre kuo Date: Sun, 12 May 2019 23:41:30 +0800 Message-ID: Subject: Re: [PATCH v3 1/2] kaslr: shift linear region randomization ahead of memory_limit To: Ard Biesheuvel Cc: Will Deacon , Catalin Marinas , Steven Price , Florian Fainelli , Linux Kernel Mailing List , linux-arm-kernel 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 hi Ard: > > The following is schematic diagram of the program before and after the > > modification. > > > > Before: > > if (memstart_addr + linear_region_size < memblock_end_of_DRAM()) {} --(a) > > if (memory_limit != PHYS_ADDR_MAX) {} --(b) > > if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {} --(c) > > if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {} --(d)* > > > > After: > > if (memstart_addr + linear_region_size < memblock_end_of_DRAM()) {} --(a) > > if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {} --(d)* > > if (memory_limit != PHYS_ADDR_MAX) {} --(b) > > if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) {} --(c) > > > > After grouping modification of memstart_address by moving linear region > > randomization ahead of memory_init, driver can safely using macro, > > __phys_to_virt, in (b) or (c), if necessary. > > > > Why is this an advantage? 1st, by putting (d) right behind (a), driver can safely uses macro, __phys_to_virt that depends on memstart_address, in (b) and (c) if necessary. That means: (a) (d) ----- finish modification of memstart_address -------- (b) --> can safely use __phys_to_virt (c) --> can safely use __phys_to_virt 2nd, it can make current driver more concise. Letting (d) right behind (a), as below v3 patch shows, https://lkml.org/lkml/2019/4/8/683 it can put initrd_start/initrd_end to be calculated only when linear mapping check pass and concise the driver by eliminating "if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && phys_initrd_size) " as patch shows. Thanks for your message.