Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3855556yba; Tue, 16 Apr 2019 22:24:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqySYlgoX8oYlclkcwTpNknsZQ+SrOEyHRC73/XmMyTORCbNpQ9FnQb7kZpIshcElLC4DgO0 X-Received: by 2002:a62:e412:: with SMTP id r18mr86748468pfh.207.1555478648389; Tue, 16 Apr 2019 22:24:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555478648; cv=none; d=google.com; s=arc-20160816; b=vhdmUcvlvjRor7+d0iLcMPOlK9NMwTpyCRXaxosPnPv1cfh9ghJheW17Y9h733GEJP 1b8SoLK1XBmWuy8hHlP8sRsgDqmi+iUCUeEy2zkIuu5bHUBHzjJBRY+3bk2UWS7OeyoT ahifzu71FejkDHuCJ9Nac8QBcL7giIg3Kgtgw4NO4sCItj7klD9Ck70il4fyRG77ZXs9 Rg+HJJ+KT4b6n2vIfK0xAqHkESz/KmH3x5YVZFoiKGv0Tlh0xp2Dr6hPLgD9kU/4RWFw LzvmBef4mi/V82YUbtVY24p2ZzSgbPifRNhjW2IcmPXgdHKicmz7ZWL3BcOUu8KvDLfr SrSA== 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 :message-id:date:subject:cc:to:from; bh=MfKX62sP+byjTlGphUtVjrlf8VKyM5n2uroo4BseXiI=; b=ylTJiN250vKp5SZ7zvjWci/tQMo+hGrG/o1XxxddTk1mqaRt7x8O453BKUkdNUeT+f xcQQ7P1YlThyO0yVJyXSfaOtpGOruU6KoOa8lpgwdtGQaOhPB7ULE8DDhGO1JPY8CSpD BayhcdqemKv6K8fLKmBdLnQexO0BAO8hTDtI3udrSuLisW7oE5OB4kuO5X2PWFlGY7jB nwcbwUAc57CoLxRe9Jcy1K8AHhZHwb6BtcmdiDzGT2ThvVFM7zpum/jv8b4yiH9wb6/x 48vfFOYGhDx+3gtTs7MOPGdD2tWvgrCMJgem4+xHCGh8Mh8pmrcnN3kchnFLS6/nT7wi T7VA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z13si48231216pgp.376.2019.04.16.22.23.51; Tue, 16 Apr 2019 22:24:08 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729084AbfDQFW7 (ORCPT + 99 others); Wed, 17 Apr 2019 01:22:59 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:38631 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725767AbfDQFW6 (ORCPT ); Wed, 17 Apr 2019 01:22:58 -0400 X-Originating-IP: 79.86.19.127 Received: from alex.numericable.fr (127.19.86.79.rev.sfr.net [79.86.19.127]) (Authenticated sender: alex@ghiti.fr) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id EC0EEFF808; Wed, 17 Apr 2019 05:22:49 +0000 (UTC) From: Alexandre Ghiti To: Andrew Morton Cc: Christoph Hellwig , Russell King , Catalin Marinas , Will Deacon , Ralf Baechle , Paul Burton , James Hogan , Palmer Dabbelt , Albert Ou , Alexander Viro , Luis Chamberlain , Kees Cook , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti Subject: [PATCH v3 00/11] Provide generic top-down mmap layout functions Date: Wed, 17 Apr 2019 01:22:36 -0400 Message-Id: <20190417052247.17809-1-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 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 This series introduces generic functions to make top-down mmap layout easily accessible to architectures, in particular riscv which was the initial goal of this series. The generic implementation was taken from arm64 and used successively by arm, mips and finally riscv. Note that in addition the series fixes 2 issues: - stack randomization was taken into account even if not necessary. - [1] fixed an issue with mmap base which did not take into account randomization but did not report it to arm and mips, so by moving arm64 into a generic library, this problem is now fixed for both architectures. This work is an effort to factorize architecture functions to avoid code duplication and oversights as in [1]. [1]: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1429066.html Changes in v3: - Split into small patches to ease review as suggested by Christoph Hellwig and Kees Cook - Move help text of new config as a comment, as suggested by Christoph - Make new config depend on MMU, as suggested by Christoph Changes in v2 as suggested by Christoph Hellwig: - Preparatory patch that moves randomize_stack_top - Fix duplicate config in riscv - Align #if defined on next line => this gives rise to a checkpatch warning. I found this pattern all around the tree, in the same proportion as the previous pattern which was less pretty: git grep -C 1 -n -P "^#if defined.+\|\|.*\\\\$" Alexandre Ghiti (11): mm, fs: Move randomize_stack_top from fs to mm arm64: Make use of is_compat_task instead of hardcoding this test arm64: Consider stack randomization for mmap base only when necessary arm64, mm: Move generic mmap layout functions to mm arm: Properly account for stack randomization and stack guard gap arm: Use STACK_TOP when computing mmap base address arm: Use generic mmap top-down layout mips: Properly account for stack randomization and stack guard gap mips: Use STACK_TOP when computing mmap base address mips: Use generic mmap top-down layout riscv: Make mmap allocation top-down by default arch/Kconfig | 8 +++ arch/arm/Kconfig | 1 + arch/arm/include/asm/processor.h | 2 - arch/arm/mm/mmap.c | 52 ---------------- arch/arm64/Kconfig | 1 + arch/arm64/include/asm/processor.h | 2 - arch/arm64/mm/mmap.c | 72 ---------------------- arch/mips/Kconfig | 1 + arch/mips/include/asm/processor.h | 5 -- arch/mips/mm/mmap.c | 57 ------------------ arch/riscv/Kconfig | 11 ++++ fs/binfmt_elf.c | 20 ------- include/linux/mm.h | 2 + kernel/sysctl.c | 6 +- mm/util.c | 96 +++++++++++++++++++++++++++++- 15 files changed, 123 insertions(+), 213 deletions(-) -- 2.20.1