From patchwork Fri Mar 15 19:51:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855473 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AE53315AC for ; Fri, 15 Mar 2019 19:51:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 978802AC52 for ; Fri, 15 Mar 2019 19:51:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8A2152AC54; Fri, 15 Mar 2019 19:51:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E83F2AC52 for ; Fri, 15 Mar 2019 19:51:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 974AB6B02A7; Fri, 15 Mar 2019 15:51:48 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 87D3F6B02A8; Fri, 15 Mar 2019 15:51:48 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7440F6B02A9; Fri, 15 Mar 2019 15:51:48 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-it1-f200.google.com (mail-it1-f200.google.com [209.85.166.200]) by kanga.kvack.org (Postfix) with ESMTP id 492D36B02A7 for ; Fri, 15 Mar 2019 15:51:48 -0400 (EDT) Received: by mail-it1-f200.google.com with SMTP id j127so8704976itj.7 for ; Fri, 15 Mar 2019 12:51:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=7EwJOZO2FU3roQl0F5aaHfBG2l97MDWb8Nx8DHL3tHk=; b=ImXpPdY3dVyF4uos+NHMYqmET0QZDf9CRgmEVd/62wvB7DL96IqZDQr7xtDiqGxUmf ragvqgsCqM7oL/2xMgRXer993L5ZqyEYshfaiIFGwEfyTRyukHcMajkppMzGZ9W/j4EM vDhjDKGehhPaIqKzyPosdd28ye74HozKInHsfknyQD6Z6AlJehRA63YoPouSq11wCXTp Zi1FYeckA1AwhBI2Ubto5NLXoqMWhbAui4Ef9ytFH99BLYdtkdb7BYavwPMKW/x+PRHQ YNahWwpcqqtJgFn8h733cQbecD+55IwjVHMlboR1h7dOJg8cg0xVSYIm03gJecoyik1L Zr0g== X-Gm-Message-State: APjAAAXjLuKeqXU3bZjqohTDb2IbT6xs30sz3UKXRYUZHGpEjRwqZXcu QlN01Xe+tb3VfgOrhmE2x0oJhqmWdUd/T6ol1dB6w1qljteBqwb2EU5klNBNqz9ez8JDCkwBxkN /qlkZM1PPUxy+dRbMarAE07QbuXyYHEz5XorwqKmlBZ1j9iFIh/v+9jGWyEreni99qQ== X-Received: by 2002:a6b:8b50:: with SMTP id n77mr3192342iod.222.1552679508008; Fri, 15 Mar 2019 12:51:48 -0700 (PDT) X-Received: by 2002:a6b:8b50:: with SMTP id n77mr3192306iod.222.1552679507220; Fri, 15 Mar 2019 12:51:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679507; cv=none; d=google.com; s=arc-20160816; b=GURPF5KHR90tDhuv+cVMcB26srsl7XibwPLG6UDR9TrEgABTxTCpsZKCPLHdCsNsPy QzsyklT4lNstsFXeWPLY/msoJggBP6D2KuQS9JwEhvkDxFjdw9QdTSTsDQ4lda0yVfWl qJby14b2Kl7yVuzV4Di2F+54uuvrB0OTY7ZDBXlwLs1d2uplTuQzYJMZQ0sj/90+3/zz AoGgxKi0DhZpsKBCADRJHkyMZslPuCfsyEgrk0CSiv5HiUsyRE87zxuE9DY3yKuLxJSx m9H5zw8MfL6pJ5aj0Xh4mGu/wgJ/vNz+HsrfZ7kf5towuha4kI8gozEcQvCrEt2dUp2c enXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=7EwJOZO2FU3roQl0F5aaHfBG2l97MDWb8Nx8DHL3tHk=; b=cscGM+bRc5KQ0RTrYfFXZPcWSylJc2b07fl8jldtO2Dz7ArGAkH2QYruMUHtQFr2nE RY8Xra/TWD2XIomQYDmHWdrd/CyIyOEVDQ95xKb5ND6Ig2Pr1GtIQ7WJRVqOOLIQlyfb cW2OahO7hS7bfz6Y0GGSSqBbcyAwwW/NQva7Rhn90SZUf60PAJ1ppfA698xU7heBJ4HI o+kueue/JdsKJRez5hzV996+uuoyBrra9DwzRNc0Ss5r+BujX5ELZ6KUvay5+BbLrSe+ ImWfWe0Oqispe8CTh1Ek14LCNcb/pCbEV2IcjxB0hi3qS4Syvjss1YCGWPotxD/TIImJ 3jPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NsZbFgqg; spf=pass (google.com: domain of 3ugkmxaokchepcsgtnzckavddvat.rdbaxcjm-bbzkprz.dgv@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3UgKMXAoKCHEPcSgTnZckaVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id s5sor3238580itb.19.2019.03.15.12.51.47 for (Google Transport Security); Fri, 15 Mar 2019 12:51:47 -0700 (PDT) Received-SPF: pass (google.com: domain of 3ugkmxaokchepcsgtnzckavddvat.rdbaxcjm-bbzkprz.dgv@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NsZbFgqg; spf=pass (google.com: domain of 3ugkmxaokchepcsgtnzckavddvat.rdbaxcjm-bbzkprz.dgv@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3UgKMXAoKCHEPcSgTnZckaVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=7EwJOZO2FU3roQl0F5aaHfBG2l97MDWb8Nx8DHL3tHk=; b=NsZbFgqg7rNL+MmKx3BQKEQu20uV5j38Y50xV/nkSWdpaI1ml/U6N36zAaOr/fw5UA vw0RHRh7TFVUW8EczyoyJgPl2GwQ0O2Y3mdoA35Hyc638cKh6Ou6T8eYWBn4JvcpMD/p rAobGvHGGcaX0d5KUxoitmIQyCm1jnvtMKLMyUhfKXJwo6H8C9LXAnbI3Vm9NBlauUvF LSPFoGZmvnqqM1DaPRlnN62YYv9Ww/FkPY+qI6Xd7c1DGMrBJfACmaSSGw3vWzqTDpi4 0fO7tv8nv58nySaGO3aBtIsMUSYoC0bWVWTZpEnNl/6BuoGd6099E0jO7AssN7waL7VF i1Ag== X-Google-Smtp-Source: APXvYqw3EhdS69JFOaj1SqCWxq2uMXIiNWdBlJ3prBk3wjQoeZqkO0NrFGiKQ0BULG0Vahh3MxRaQ9/Jyb5Vnlog X-Received: by 2002:a24:7bd3:: with SMTP id q202mr100068itc.32.1552679506915; Fri, 15 Mar 2019 12:51:46 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:25 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 01/14] uaccess: add untagged_addr definition for other arches From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP To allow arm64 syscalls to accept tagged pointers from userspace, we must untag them when they are passed to the kernel. Since untagging is done in generic parts of the kernel, the untagged_addr macro needs to be defined for all architectures. Define it as a noop for architectures other than arm64. Acked-by: Catalin Marinas Signed-off-by: Andrey Konovalov --- include/linux/mm.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 76769749b5a5..4d674518d392 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -99,6 +99,10 @@ extern int mmap_rnd_compat_bits __read_mostly; #include #include +#ifndef untagged_addr +#define untagged_addr(addr) (addr) +#endif + #ifndef __pa_symbol #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) #endif From patchwork Fri Mar 15 19:51:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855477 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E259615AC for ; Fri, 15 Mar 2019 19:51:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CF8512AC52 for ; Fri, 15 Mar 2019 19:51:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C249F2AC54; Fri, 15 Mar 2019 19:51:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 48B9D2AC52 for ; Fri, 15 Mar 2019 19:51:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82FF96B02A9; Fri, 15 Mar 2019 15:51:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 8068C6B02AA; Fri, 15 Mar 2019 15:51:52 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 71DD56B02AB; Fri, 15 Mar 2019 15:51:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by kanga.kvack.org (Postfix) with ESMTP id 333806B02A9 for ; Fri, 15 Mar 2019 15:51:52 -0400 (EDT) Received: by mail-pg1-f199.google.com with SMTP id m17so11258184pgk.3 for ; Fri, 15 Mar 2019 12:51:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=HBqdcrrZbnaUQvnw2SuV9xpSHs4pKIOHqIC9BZ3VFKg=; b=JP51IkOLGUfVWJJsNYN13Ps0HWH8EaeJpAzp64uA5HeP+ocSnNohB7l7Bgw1xjEUGc HiOeNNXxTxJ8uQpz1Np6Y/1/0o5Kiphp1AGrWormhobepuS9pcZHkk9AL30wrd7kA6pA 8A7K7nOVGuEpmTKU7iC8cK568xfEaTpnR3gMjpc1y74N3j5OUMSzhjfF84WjioKCQG3X DT4u5L/FtEOVpZfcGuxgfFAddaPINtpOAV7vAuAb318AmZ3vgPorF3n7I6nRC4vXS4HO 6jF9tQlpd2KRxcRVI5iH/kWNH17YcyEK/supB4ry1RNTr74rFf7ru/+C/CCMqYITnCVl pk5A== X-Gm-Message-State: APjAAAUSgtVFzQfYnCQc8qz4EqUeRkLPOdPvtrkcxnUQP/R2m1NGnfHQ 5/yDGUrIoJnCo8Pd+QnBdqmzqzBV6yS9vKK5RNPmnmlkHkQEZtP8olqF6uqjCf1qAPEinXV5j69 0b4oacP4NnJBNC4i2L5P52haeK49X45tEyq0jPhcoIFfJabXP54+7F7AYK7ZpJ1LtzA== X-Received: by 2002:a17:902:aa90:: with SMTP id d16mr5865052plr.250.1552679511756; Fri, 15 Mar 2019 12:51:51 -0700 (PDT) X-Received: by 2002:a17:902:aa90:: with SMTP id d16mr5864979plr.250.1552679510692; Fri, 15 Mar 2019 12:51:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679510; cv=none; d=google.com; s=arc-20160816; b=NWQTpRNPJ9ZMazH1vLZjzUT9twt3zdtbrYIFNC1iGcljmxIc+qyr9s018pUJKOJUij a3FeKhbfWn6Cp6YkkWfP99rGCDhpGJh2ZlX+eJqB8SlfDdWChmTU7mNPTDZ9XMicfO0t OBAbZd/Ahdv/FxxGlBubBxjW+PYAtknml2bMQVDcK9I80KhsrekncVeZOfOXyWA1Nuzp Gn+B/RPTji8G1eL3duVuVL+dufTiAOUO+t4qK3gJ8le2U1Dtfep09JVjsmf4tOE8ZGHa CkSUVN4krh6CnI74Z8Iuex3KK8I9xPOHv/NFFkq4mwCnUdGkf22I2kX1HCwgl5XSx6Zr Dk/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=HBqdcrrZbnaUQvnw2SuV9xpSHs4pKIOHqIC9BZ3VFKg=; b=iLvHbKHU9heyhn2oth7+Mz3pHnsjWrEKFISWKT7tAM+yaDx1cuiVm5aBg6GbSLyX1m /ktoJxeMkVEkFcVQ2R4TMZmssvlMDPfJqQsdKfzvDIpTbSPcQv8zN2PfnFdKkeBBIhe4 5xt81YAnx5HKjp+lDzXFrVc/jYfntj++/NgayAzFyYFhcBPXuqEwUsO86tlsjeagOkxh KhyzkGGDjJThAgRYE4cCUeK+MA/iF/Teb0Oy9ToL7fnJT96+6SEYcBBmqoQfQgwwCsIr yc4BKVxyX1BpnbdQ3ZTW+IdscZmGX7+3QWp4rD8wVrHJQhr7bVBE0Ko86DQ0lYZtWhO0 R2Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=bMyL6O7m; spf=pass (google.com: domain of 3vgkmxaokchutgwkxrdgoezhhzex.vhfebgnq-ffdotvd.hkz@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3VgKMXAoKCHUTgWkXrdgoeZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id t7sor4686904pgv.20.2019.03.15.12.51.50 for (Google Transport Security); Fri, 15 Mar 2019 12:51:50 -0700 (PDT) Received-SPF: pass (google.com: domain of 3vgkmxaokchutgwkxrdgoezhhzex.vhfebgnq-ffdotvd.hkz@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=bMyL6O7m; spf=pass (google.com: domain of 3vgkmxaokchutgwkxrdgoezhhzex.vhfebgnq-ffdotvd.hkz@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3VgKMXAoKCHUTgWkXrdgoeZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=HBqdcrrZbnaUQvnw2SuV9xpSHs4pKIOHqIC9BZ3VFKg=; b=bMyL6O7mL3v0PpvhcraOwU0+T0KPIFPV/p7nmVTvmipE51X/RVpxp6XgCeUgtieP7G ixioELJzjz0dEoQWCYr0YK3/FbXsJYHqdPSXpUIsBdn1yDDXj6QnCZ35FOYA8i9HT63C 4NxOaja1Vj1CohRqNK5BDjm+Ej2ZsDeLIYnjGIPj/aDrjQ9HbzCW01i4AWSy9c6BCqBH VOneIHkae9V1wBY19FpITt5gyzE2kQ3GzB4IuuJ9g8/ByewueOS2EyupEZ9Fn2xI7TMs eSLl2rv00PucX+Qh3Q1GWwU/1iBbczPrTond0HrvoOUHVc5VY5X1umF2QYAhZzj9B3zd L8hA== X-Google-Smtp-Source: APXvYqwlT5i1jX7khcwaLfGY9H0rl+oWt5KckuYgCZmSJDPuy2OzcL+WBdRis5ZekWALtZsnFbHnM5bpC2RyyAOF X-Received: by 2002:a65:52c5:: with SMTP id z5mr2165417pgp.71.1552679510299; Fri, 15 Mar 2019 12:51:50 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:26 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 02/14] arm64: untag user pointers in access_ok and __uaccess_mask_ptr From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. copy_from_user (and a few other similar functions) are used to copy data from user memory into the kernel memory or vice versa. Since a user can provided a tagged pointer to one of the syscalls that use copy_from_user, we need to correctly handle such pointers. Do this by untagging user pointers in access_ok and in __uaccess_mask_ptr, before performing access validity checks. Note, that this patch only temporarily untags the pointers to perform the checks, but then passes them as is into the kernel internals. Reviewed-by: Catalin Marinas Signed-off-by: Andrey Konovalov --- arch/arm64/include/asm/uaccess.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h index e5d5f31c6d36..9164ecb5feca 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h @@ -94,7 +94,7 @@ static inline unsigned long __range_ok(const void __user *addr, unsigned long si return ret; } -#define access_ok(addr, size) __range_ok(addr, size) +#define access_ok(addr, size) __range_ok(untagged_addr(addr), size) #define user_addr_max get_fs #define _ASM_EXTABLE(from, to) \ @@ -226,7 +226,8 @@ static inline void uaccess_enable_not_uao(void) /* * Sanitise a uaccess pointer such that it becomes NULL if above the - * current addr_limit. + * current addr_limit. In case the pointer is tagged (has the top byte set), + * untag the pointer before checking. */ #define uaccess_mask_ptr(ptr) (__typeof__(ptr))__uaccess_mask_ptr(ptr) static inline void __user *__uaccess_mask_ptr(const void __user *ptr) @@ -234,10 +235,11 @@ static inline void __user *__uaccess_mask_ptr(const void __user *ptr) void __user *safe_ptr; asm volatile( - " bics xzr, %1, %2\n" + " bics xzr, %3, %2\n" " csel %0, %1, xzr, eq\n" : "=&r" (safe_ptr) - : "r" (ptr), "r" (current_thread_info()->addr_limit) + : "r" (ptr), "r" (current_thread_info()->addr_limit), + "r" (untagged_addr(ptr)) : "cc"); csdb(); From patchwork Fri Mar 15 19:51:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855479 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 24A4715AC for ; Fri, 15 Mar 2019 19:51:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C7622AC52 for ; Fri, 15 Mar 2019 19:51:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F273C2AC54; Fri, 15 Mar 2019 19:51:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC0F52AC52 for ; Fri, 15 Mar 2019 19:51:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE72C6B02AA; Fri, 15 Mar 2019 15:51:54 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EBC5D6B02AB; Fri, 15 Mar 2019 15:51:54 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD6856B02AC; Fri, 15 Mar 2019 15:51:54 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by kanga.kvack.org (Postfix) with ESMTP id AFE576B02AA for ; Fri, 15 Mar 2019 15:51:54 -0400 (EDT) Received: by mail-qt1-f199.google.com with SMTP id i3so9675749qtc.7 for ; Fri, 15 Mar 2019 12:51:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=yc2TKKK3uyNjx4k/SCg2YsIAkDocczWLqEwyHrZeSHg=; b=bJDsiP+PlmWagLv7AWUhVASMZXhwF7pgk/S/O+r9YqBoMKi1QuTBjJMLlX0+pI2Iez TWFVLpE0R5wcD/wBeS1IcMq2sdwrUmlI7IqAAyivZOqbxaKCwQbi3fjaj6wd79sam/oF 8Wy3iPcWBMCcTqaCIDhCZqsG+o3NVkMhIjivQKfC2FM4Ds4OmhqAArb6i6zgLctFtZ8g VKXEO/1exFofkZY68SZHnQU4YJ7ikXQ/XgCjlyx52uQIUAzbgSXY0P38L62tqisEwN79 wELDUYAZmI1oerr3YeOff+HcZ3hToJs/E1XMSQgUXuTiVASNRn1zlCxrBPCTTTR3pj/j vhYg== X-Gm-Message-State: APjAAAUMzH0QdnMA6AmxP3CQZX0b88bTzaWnqezkJxxFoTG5oOiPJTd9 Lyaf0w+kqkp4z85n5+eVAQA6w5LVsBb8iSU7De2DM2UwvhpvploCJjHktb1epSKrAH/kLEQ22bw scOdEtGzdFUSopV+mpt5ghQ5urrelnqAfnzUEa5t4sMa0uStV8ODDJAd2gAYT5/mfaQ== X-Received: by 2002:ac8:27ba:: with SMTP id w55mr4275945qtw.228.1552679514517; Fri, 15 Mar 2019 12:51:54 -0700 (PDT) X-Received: by 2002:ac8:27ba:: with SMTP id w55mr4275920qtw.228.1552679513799; Fri, 15 Mar 2019 12:51:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679513; cv=none; d=google.com; s=arc-20160816; b=fUy0p2gx++LsemiOKXhkY40WlXs4HpV9elsdSMbDnSApWKkF556hPmGjZad+E40di3 otczigs4AlSCDlVprhqM/OMad7lvQ43z0lHdQcB4plmFLYmM6yrMgYt1I+5Y8UYZOek9 5TSg3Q92Y4Nwpnn87p3DuAvdF1vR50oYYaGq8LtXKaP/lAAY6FzD4LN26jRb/XA+Hylk AOv1ooxMjuXeXwsMlYJX6dJyNn6XwfdmkC3HNE49t8r33DXABt7g024+DPlWRURjMZXb VwE31KmKaZejZM75ztbLPm/ACyo8nBeUkA6rkvBUQ1ypUMBGIOTQwNY+Enw7j1MjcbOu /Iuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=yc2TKKK3uyNjx4k/SCg2YsIAkDocczWLqEwyHrZeSHg=; b=hhSuQsVGKxukh2a3uZ03xgWiHHdRZDv6SAs7NvnfxrLmerJ9WMqTwC6IjNYDHdGjGl uTjANunmluM6J7xKwY2JW6Ya1SP2iYkvxnoIFh1LV6PJVAGXesKiLEmzfoJLU+hFOHUQ jAGxnK5XnY4tlGFY8jpCg+Db/9TDIWZjDr4dlJIRcNgGRWOM1V2DO5nnvag0o780tohi PkwSuu6NFEWSo2EKmD266anH4t/vcAGhkYf72B1f5/R7/ozn63ouRk0L2sYuUej1eBzJ FBPMkCcQ0eaZddvQDWjGXkwXzn4U/ZwjTydFprkMW8ZzOuu1ME+Pw/LbucbpP6Kh9bpn 5NUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=HPKtN+Ac; spf=pass (google.com: domain of 3wqkmxaokchgwjznaugjrhckkcha.ykihejqt-iigrwyg.knc@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3WQKMXAoKCHgWjZnaugjrhckkcha.Ykihejqt-iigrWYg.knc@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id 34sor3691110qte.45.2019.03.15.12.51.53 for (Google Transport Security); Fri, 15 Mar 2019 12:51:53 -0700 (PDT) Received-SPF: pass (google.com: domain of 3wqkmxaokchgwjznaugjrhckkcha.ykihejqt-iigrwyg.knc@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=HPKtN+Ac; spf=pass (google.com: domain of 3wqkmxaokchgwjznaugjrhckkcha.ykihejqt-iigrwyg.knc@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3WQKMXAoKCHgWjZnaugjrhckkcha.Ykihejqt-iigrWYg.knc@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=yc2TKKK3uyNjx4k/SCg2YsIAkDocczWLqEwyHrZeSHg=; b=HPKtN+AcCirGFFQHEZAu/mCbNrjYIKj90qShdg/IiFhxen49J0Qdpnr1pcKG7a6Z8e JeJ2qVhpKVo0e4MFSlZbzLIR2woDetJaTNND5bdihZ/qbAWcocsa2cvfjheYeB4rsRtq VupfRDNmC+dOLdGj40kTGJqU/K4oyQ4V3HkdkM9xosZcLU7jdIpJBpWnC76XUdwc2cRx PrBSQsPpZWMh+HxdTYEIi4nHU5c8m+m6PJBso4DlJCsFDkKaGHF5sF+vigRkHjI5UG0U RhfFgSuDuzmav8L6Qcw6zbyS+BybgMK3vA4F1h2a+P/7Y7SKXtGu14CbY9cr1/NstkUy Z8Lw== X-Google-Smtp-Source: APXvYqxQt9HPpRfECab7LUPrHAbJSVnQOqRrkiVNkyIaCkT/+WBTjFpEfz28zU++TxipH2bwdLb5/hvYcjvCwg1k X-Received: by 2002:ac8:28c9:: with SMTP id j9mr3165248qtj.21.1552679513588; Fri, 15 Mar 2019 12:51:53 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:27 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 03/14] lib, arm64: untag user pointers in strn*_user From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. strncpy_from_user and strnlen_user accept user addresses as arguments, and do not go through the same path as copy_from_user and others, so here we need to handle the case of tagged user addresses separately. Untag user pointers passed to these functions. Note, that this patch only temporarily untags the pointers to perform validity checks, but then uses them as is to perform user memory accesses. Signed-off-by: Andrey Konovalov --- lib/strncpy_from_user.c | 3 ++- lib/strnlen_user.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c index 58eacd41526c..6209bb9507c7 100644 --- a/lib/strncpy_from_user.c +++ b/lib/strncpy_from_user.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -107,7 +108,7 @@ long strncpy_from_user(char *dst, const char __user *src, long count) return 0; max_addr = user_addr_max(); - src_addr = (unsigned long)src; + src_addr = (unsigned long)untagged_addr(src); if (likely(src_addr < max_addr)) { unsigned long max = max_addr - src_addr; long retval; diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c index 1c1a1b0e38a5..8ca3d2ac32ec 100644 --- a/lib/strnlen_user.c +++ b/lib/strnlen_user.c @@ -2,6 +2,7 @@ #include #include #include +#include #include @@ -109,7 +110,7 @@ long strnlen_user(const char __user *str, long count) return 0; max_addr = user_addr_max(); - src_addr = (unsigned long)str; + src_addr = (unsigned long)untagged_addr(str); if (likely(src_addr < max_addr)) { unsigned long max = max_addr - src_addr; long retval; From patchwork Fri Mar 15 19:51:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855483 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DEE1B17E6 for ; Fri, 15 Mar 2019 19:52:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C38CF2AC52 for ; Fri, 15 Mar 2019 19:52:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B69FB2AC53; Fri, 15 Mar 2019 19:52:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F20AD2AC54 for ; Fri, 15 Mar 2019 19:51:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B6726B02AD; Fri, 15 Mar 2019 15:51:58 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 98CB26B02AE; Fri, 15 Mar 2019 15:51:58 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 856636B02AF; Fri, 15 Mar 2019 15:51:58 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-yw1-f69.google.com (mail-yw1-f69.google.com [209.85.161.69]) by kanga.kvack.org (Postfix) with ESMTP id 641916B02AD for ; Fri, 15 Mar 2019 15:51:58 -0400 (EDT) Received: by mail-yw1-f69.google.com with SMTP id 68so13056853ywb.20 for ; Fri, 15 Mar 2019 12:51:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=ne94nbMAoRi3AMfSYNN+0mcNX8RvX6YNSoJJsIsiTHc=; b=SY1E5UJi2i+GgsPWAgbxpyAaKc7FV88dSHRHs3Y5EW6aUX0h1n/TrAb4XNtadDzRRr 9FxXEA+JzMkew3pSpaPBKdq1QUsQ5peZyje78geWwZy6WTSoz5vFraZnLhngvspOzgOw 1WootZbjxFq8nxTABbzscOE28I/KvOcBd5zIMs3hhtR/oKU9X3NIKKbPkLcZl39Q6wCN ki1CnOiGGzLnOhZ4jcEXe32JTD4VKE2lkV29YtyR5l6+/gtwF74NeAJn9flRqeO+1pq1 +h+wD/s+vI4XXIto2WT+VOItXH2ZvCa8hb3OO0V7Ng7ekAuzmRj3l9enE/8pju1Gs9+5 GZMg== X-Gm-Message-State: APjAAAWsdr2qgH6KSl/44SlIv0FPKhcPOJS0fhkrzcrJ0/6NQIzlpobw UNXXJ2QLd/5MTMl4Z6D9E+SLNVf+se0EfqirPpTVw7OcAv4+zITjwvn+8a9fR5L2CXHz3/wxzO0 YTj4iyk6EqoZNfZgx5Yag480iuSzGb9Jj3hhi97F1WGuCsbL634K2+ZGhY9q7zMeC/A== X-Received: by 2002:a81:2f94:: with SMTP id v142mr4416078ywv.104.1552679518145; Fri, 15 Mar 2019 12:51:58 -0700 (PDT) X-Received: by 2002:a81:2f94:: with SMTP id v142mr4416015ywv.104.1552679516977; Fri, 15 Mar 2019 12:51:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679516; cv=none; d=google.com; s=arc-20160816; b=vnX73TgU/1IAKAMf9lS6JUqX0eDrUTVhgxf0ay3W8l6YlL72Gd4fNRZh/jyS4ERUu+ NXqjpy5Roqqrhsaqjw+fShzjTH3zJMQArbzF2SdHKLsMiHYiNo760Jg6wuIG/EAu/prM tQzKqsLI8sE67Eid2MW2e+TlGK+i54yExfOV8XbogTlKAaCFBoKxUMz3Hqp75yWVywQ+ rtNSLLlxG5DmX8j6/GNQUF77ZxJrREL5GJBJw7oiy+8Ijseox02z0yA1Llu+4IG7fFbR L2qnAvzs11U1oP0aPfgUHiZ5/qwpeEp2fi7wRU8jXhD5Ch7X9n1NT4NOMdTL0bhqcgoy Nddg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=ne94nbMAoRi3AMfSYNN+0mcNX8RvX6YNSoJJsIsiTHc=; b=enu3Wr7chTVg0t5qGegnRF9O7VJhKbYYO2tSc5bGI3hyENkACZZp5pX/9bNHX9En8Y 7F9I6SvzqWeCitWZ7ybwauiIByPqPP+ET35Sk18cd6cruqx8CEf57xjRcdAI0Pu68du3 6xCmIgDPRhtwfvksjzzVxQxGbM/KPOe3WI4ooY/zIKom7Owkqi3ZP7PIlrtDI/q8Es7y YSUit4NodqArC3AjnpdCSv4v47a4jZeAWrvhDQXR/GUpgn+3IqiSRtym0Q00pGPFzkaT SMZCUNl4GqHWFWmgCpzVK0HQAtEiUbSgDle4vXjy9JVwoIOymnGuWXGKR9WRaoISM9H0 4R0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BEm8cwjt; spf=pass (google.com: domain of 3xakmxaokchszmcqdxjmukfnnfkd.bnlkhmtw-lljuzbj.nqf@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3XAKMXAoKCHsZmcqdxjmukfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id 8sor1647008ybn.23.2019.03.15.12.51.56 for (Google Transport Security); Fri, 15 Mar 2019 12:51:56 -0700 (PDT) Received-SPF: pass (google.com: domain of 3xakmxaokchszmcqdxjmukfnnfkd.bnlkhmtw-lljuzbj.nqf@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BEm8cwjt; spf=pass (google.com: domain of 3xakmxaokchszmcqdxjmukfnnfkd.bnlkhmtw-lljuzbj.nqf@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3XAKMXAoKCHsZmcqdxjmukfnnfkd.bnlkhmtw-lljuZbj.nqf@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=ne94nbMAoRi3AMfSYNN+0mcNX8RvX6YNSoJJsIsiTHc=; b=BEm8cwjt382s8RjAGQvo1Hn0RHaQK7uw7NcZ5twzwPH8R8uFonGwKFh2XsX1GQOTnc HVSpe8DPgWrIB7nAJ/9/kjtxnclyR68X6nB+IXEDbq7DyLDsU/YQrxWhQLmpe2PrmwHS SmJBJs615J6VfN3xI8au5KXuOmYRDjgIjmyrs3qfh9a0ErkJnQ70zKFzJfXyCF0PecT/ IiARXBhAIwT1xmvaZ9vJ/plCijVm9JXcIijXvok/NLiDL38mt5n2Pwal14DYidxckvna v90K6zS2CgkMTtnsj9tEyrx34Z9yU5EYRMEh8ToePcwO4FFC3pM5VjOQu6ZBgwJ0nUa4 2xEg== X-Google-Smtp-Source: APXvYqyLSPXIwniLQiTPoq4l3migNGMyo733PToduSZlNziGWPk+S/AKydsLreBxFGh52nvkT0tHaJ/35/yy1bqG X-Received: by 2002:a25:3f41:: with SMTP id m62mr2357156yba.72.1552679516703; Fri, 15 Mar 2019 12:51:56 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:28 +0100 In-Reply-To: Message-Id: <42332fc5b15c434cfa4730e5906cd303fb8a901a.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 04/14] mm, arm64: untag user pointers passed to memory syscalls From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. This patch allows tagged pointers to be passed to the following memory syscalls: madvise, mbind, get_mempolicy, mincore, mlock, mlock2, brk, mmap_pgoff, old_mmap, munmap, remap_file_pages, mprotect, pkey_mprotect, mremap, msync and shmdt. This is done by untagging pointers passed to these syscalls in the prologues of their handlers. Signed-off-by: Andrey Konovalov --- ipc/shm.c | 2 ++ mm/madvise.c | 2 ++ mm/mempolicy.c | 5 +++++ mm/migrate.c | 1 + mm/mincore.c | 2 ++ mm/mlock.c | 5 +++++ mm/mmap.c | 7 +++++++ mm/mprotect.c | 1 + mm/mremap.c | 2 ++ mm/msync.c | 2 ++ 10 files changed, 29 insertions(+) diff --git a/ipc/shm.c b/ipc/shm.c index ce1ca9f7c6e9..7af8951e6c41 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1593,6 +1593,7 @@ SYSCALL_DEFINE3(shmat, int, shmid, char __user *, shmaddr, int, shmflg) unsigned long ret; long err; + shmaddr = untagged_addr(shmaddr); err = do_shmat(shmid, shmaddr, shmflg, &ret, SHMLBA); if (err) return err; @@ -1732,6 +1733,7 @@ long ksys_shmdt(char __user *shmaddr) SYSCALL_DEFINE1(shmdt, char __user *, shmaddr) { + shmaddr = untagged_addr(shmaddr); return ksys_shmdt(shmaddr); } diff --git a/mm/madvise.c b/mm/madvise.c index 21a7881a2db4..64e6d34a7f9b 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -809,6 +809,8 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior) size_t len; struct blk_plug plug; + start = untagged_addr(start); + if (!madvise_behavior_valid(behavior)) return error; diff --git a/mm/mempolicy.c b/mm/mempolicy.c index af171ccb56a2..31691737c59c 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1334,6 +1334,7 @@ static long kernel_mbind(unsigned long start, unsigned long len, int err; unsigned short mode_flags; + start = untagged_addr(start); mode_flags = mode & MPOL_MODE_FLAGS; mode &= ~MPOL_MODE_FLAGS; if (mode >= MPOL_MAX) @@ -1491,6 +1492,8 @@ static int kernel_get_mempolicy(int __user *policy, int uninitialized_var(pval); nodemask_t nodes; + addr = untagged_addr(addr); + if (nmask != NULL && maxnode < nr_node_ids) return -EINVAL; @@ -1576,6 +1579,8 @@ COMPAT_SYSCALL_DEFINE6(mbind, compat_ulong_t, start, compat_ulong_t, len, unsigned long nr_bits, alloc_size; nodemask_t bm; + start = untagged_addr(start); + nr_bits = min_t(unsigned long, maxnode-1, MAX_NUMNODES); alloc_size = ALIGN(nr_bits, BITS_PER_LONG) / 8; diff --git a/mm/migrate.c b/mm/migrate.c index ac6f4939bb59..ecc6dcdefb1f 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1612,6 +1612,7 @@ static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes, if (get_user(node, nodes + i)) goto out_flush; addr = (unsigned long)p; + addr = untagged_addr(addr); err = -ENODEV; if (node < 0 || node >= MAX_NUMNODES) diff --git a/mm/mincore.c b/mm/mincore.c index 218099b5ed31..c4a3f4484b6b 100644 --- a/mm/mincore.c +++ b/mm/mincore.c @@ -228,6 +228,8 @@ SYSCALL_DEFINE3(mincore, unsigned long, start, size_t, len, unsigned long pages; unsigned char *tmp; + start = untagged_addr(start); + /* Check the start address: needs to be page-aligned.. */ if (start & ~PAGE_MASK) return -EINVAL; diff --git a/mm/mlock.c b/mm/mlock.c index 080f3b36415b..6934ec92bf39 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -715,6 +715,7 @@ static __must_check int do_mlock(unsigned long start, size_t len, vm_flags_t fla SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len) { + start = untagged_addr(start); return do_mlock(start, len, VM_LOCKED); } @@ -722,6 +723,8 @@ SYSCALL_DEFINE3(mlock2, unsigned long, start, size_t, len, int, flags) { vm_flags_t vm_flags = VM_LOCKED; + start = untagged_addr(start); + if (flags & ~MLOCK_ONFAULT) return -EINVAL; @@ -735,6 +738,8 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len) { int ret; + start = untagged_addr(start); + len = PAGE_ALIGN(len + (offset_in_page(start))); start &= PAGE_MASK; diff --git a/mm/mmap.c b/mm/mmap.c index 41eb48d9b527..512c679c7f33 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -199,6 +199,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) bool downgraded = false; LIST_HEAD(uf); + brk = untagged_addr(brk); + if (down_write_killable(&mm->mmap_sem)) return -EINTR; @@ -1571,6 +1573,8 @@ unsigned long ksys_mmap_pgoff(unsigned long addr, unsigned long len, struct file *file = NULL; unsigned long retval; + addr = untagged_addr(addr); + if (!(flags & MAP_ANONYMOUS)) { audit_mmap_fd(fd, flags); file = fget(fd); @@ -2867,6 +2871,7 @@ EXPORT_SYMBOL(vm_munmap); SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len) { + addr = untagged_addr(addr); profile_munmap(addr); return __vm_munmap(addr, len, true); } @@ -2885,6 +2890,8 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, unsigned long ret = -EINVAL; struct file *file; + start = untagged_addr(start); + pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n", current->comm, current->pid); diff --git a/mm/mprotect.c b/mm/mprotect.c index 028c724dcb1a..3c2b11629f89 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -468,6 +468,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, if (grows == (PROT_GROWSDOWN|PROT_GROWSUP)) /* can't be both */ return -EINVAL; + start = untagged_addr(start); if (start & ~PAGE_MASK) return -EINVAL; if (!len) diff --git a/mm/mremap.c b/mm/mremap.c index e3edef6b7a12..6422aeee65bb 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -605,6 +605,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, LIST_HEAD(uf_unmap_early); LIST_HEAD(uf_unmap); + addr = untagged_addr(addr); + if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) return ret; diff --git a/mm/msync.c b/mm/msync.c index ef30a429623a..c3bd3e75f687 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -37,6 +37,8 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) int unmapped_error = 0; int error = -EINVAL; + start = untagged_addr(start); + if (flags & ~(MS_ASYNC | MS_INVALIDATE | MS_SYNC)) goto out; if (offset_in_page(start)) From patchwork Fri Mar 15 19:51:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D56EC13B5 for ; Fri, 15 Mar 2019 19:52:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE5162AC52 for ; Fri, 15 Mar 2019 19:52:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B177A2AC53; Fri, 15 Mar 2019 19:52:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E7A892AC54 for ; Fri, 15 Mar 2019 19:52:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5BDEC6B02AF; Fri, 15 Mar 2019 15:52:01 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 596496B02B0; Fri, 15 Mar 2019 15:52:01 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B0736B02B1; Fri, 15 Mar 2019 15:52:01 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-io1-f70.google.com (mail-io1-f70.google.com [209.85.166.70]) by kanga.kvack.org (Postfix) with ESMTP id 1C8E86B02AF for ; Fri, 15 Mar 2019 15:52:01 -0400 (EDT) Received: by mail-io1-f70.google.com with SMTP id l10so7780468iob.22 for ; Fri, 15 Mar 2019 12:52:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=5MhKE+xTLHyfvL7IaHp0v3M/t60vex2+i9OGVnQRymk=; b=tC9oZjaSjC5+nJq9nVEFiTqxpDLlY14P8jaRKc4PXgcCgp+O0LEisA4G4DIaTG76ln hRvoc3TaUaXUhSrqai4ZqRGLWKYtaHDBaDLKrs3Tnv0LGzceiXgoTTjS3LIvI4Xb/JZN QpwB2Ckc5C4hsE6z/soqtkzb6Yzl4rwLIHP/b2Amoc0p5vVe4256/rMzbemA0atm++az cHSYtQoQhzN8J3zZSJvrBSDtlXC+mmeskncJSUiYsiR03MPbd5ieRWV5o1UhaNA+C1Vb rX0gobDNxytXn7FKL7KJcdXJAE28JpDFm9BZomXalhuL2aWXaH+Gh2OdnABBIGTYLwz+ nOiQ== X-Gm-Message-State: APjAAAXYN56iH/AKdX4LM447RDlZS4uWoHFkXHAmN8LBM9pLN2BQH4e7 aFRjSAxnk5c3SCUfS87Ei8Mu9KlTHp2I1QMQeVjJ9JIEqX6GVIJlV7GwObcAX6U1kXO1E4LSxOD dXcfyIvEn13BKp4F8Ny9/CO5uA/0XmAOcOjcCUAoZJdUIExKtG+YMHVoygOfevsprZQ== X-Received: by 2002:a6b:6e0f:: with SMTP id d15mr3679375ioh.111.1552679520883; Fri, 15 Mar 2019 12:52:00 -0700 (PDT) X-Received: by 2002:a6b:6e0f:: with SMTP id d15mr3679339ioh.111.1552679520134; Fri, 15 Mar 2019 12:52:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679520; cv=none; d=google.com; s=arc-20160816; b=njBKrutnc1mYpe9Hn8DO37jssD7zSvM4XnRCBACkZCMMOGSBoJw5C/rdTYMXy9SDnU KmV2dwXeW7saIc0asqS29SwZ2/nuv1jnjkOWL31+xfXrHedZp1zt+27GslKPtun+9Wqj OrtRhQ3Gk08UTeCIkx8wD0oOhDBPGGYZ1hOW3AoMovJ1AaYgXgRhCs4XgRcL42DJXynL SJeXx+UWdmC/q6XzfGDicrOchisS25Zy6v9eEIryn88e3vW7cv+CFBYpXA2Pd4jgTr6O xEc4roMbTWmklejy4Nt7nixQEGVm+dtWKBaT0WeU0dVSch5Teu8krvf1VGUdj3UtpZil gnNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=5MhKE+xTLHyfvL7IaHp0v3M/t60vex2+i9OGVnQRymk=; b=WhQTZKavYZNAp2ZCZ17qQvl+dBHs8Br+7OZVSrMOzvaxEYAljVMJN69+I6C3R/cQmz leYvLZtJqxhTyPGxBBhI3n8D3b+ZSJUQGU+XWcIHiLj97bzQYTnFNiCvlHXPtLwDVOZF Txv/+mHMxkrBxQ6ZcT5pwyVcfMgKvSmLKOha12VOrJNkkKug9Fv0wXqE+lN93cuTldIY enxmOlIr5wzn/70E06///HcSQvS5TL7z2YeBZ/o9vdpMvMGUH/g6J8VK62h0FhpLBHaZ JgLFDWXsyyJjIPa53v58lRH57jp54decuup3U0jWkBOR7K0bowRKZgaKLAKsQZex1nXi CEAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="b/k7mB6t"; spf=pass (google.com: domain of 3xwkmxaokch4cpftg0mpxniqqing.eqonkpwz-oomxcem.qti@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3XwKMXAoKCH4cpftg0mpxniqqing.eqonkpwz-oomxcem.qti@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id n195sor4993395itb.34.2019.03.15.12.52.00 for (Google Transport Security); Fri, 15 Mar 2019 12:52:00 -0700 (PDT) Received-SPF: pass (google.com: domain of 3xwkmxaokch4cpftg0mpxniqqing.eqonkpwz-oomxcem.qti@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="b/k7mB6t"; spf=pass (google.com: domain of 3xwkmxaokch4cpftg0mpxniqqing.eqonkpwz-oomxcem.qti@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3XwKMXAoKCH4cpftg0mpxniqqing.eqonkpwz-oomxcem.qti@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=5MhKE+xTLHyfvL7IaHp0v3M/t60vex2+i9OGVnQRymk=; b=b/k7mB6t8bkl6WhPUgGfnIbuQpfATsU20Yd9KlI8YbMaGUFttdQxCzkvduKa8IOy8C +aL+zDQpxDKN5neB5pmosuIHBI0Zw/VkKPjT+OCI05YKof+0rexjDomInULUZSZZwZe4 sKO4ip/dnicDW0EiUs3RF19JdO3smNNUCHBqnEYyMQcB4Zi3SAnphW12wObXWLr30yaC Cg1FmVpaxC5JzsE7dKMZHXXd8+AOb4omgJILGhPI4h92LrbGtWJe5eIqPcfmyYH0djku js0qEZrW0JA+T0+gbA+Ly5yXzixdwcg0y/4Mb6pAB6p7EjV2RE2SUw8xVQAbEf7JiHti SGaw== X-Google-Smtp-Source: APXvYqzz8vOD7Qv22AiUEzZPFjEW8sEguH+wb4/ai4clU9WhQEQBq5QCuyJA5WS9vCTzYh7rDvAW6xfNjGINS7Ci X-Received: by 2002:a24:4503:: with SMTP id y3mr2805802ita.32.1552679519819; Fri, 15 Mar 2019 12:51:59 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:29 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 05/14] mm, arm64: untag user pointers in mm/gup.c From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. mm/gup.c provides a kernel interface that accepts user addresses and manipulates user pages directly (for example get_user_pages, that is used by the futex syscall). Since a user can provided tagged addresses, we need to handle this case. Add untagging to gup.c functions that use user addresses for vma lookups. Signed-off-by: Andrey Konovalov --- mm/gup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/gup.c b/mm/gup.c index f84e22685aaa..3192741e0b3a 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -686,6 +686,8 @@ static long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, if (!nr_pages) return 0; + start = untagged_addr(start); + VM_BUG_ON(!!pages != !!(gup_flags & FOLL_GET)); /* @@ -848,6 +850,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, struct vm_area_struct *vma; vm_fault_t ret, major = 0; + address = untagged_addr(address); + if (unlocked) fault_flags |= FAULT_FLAG_ALLOW_RETRY; From patchwork Fri Mar 15 19:51:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B429615AC for ; Fri, 15 Mar 2019 19:52:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9DB892AC52 for ; Fri, 15 Mar 2019 19:52:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9081A2AC54; Fri, 15 Mar 2019 19:52:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2B3E32AC52 for ; Fri, 15 Mar 2019 19:52:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D114B6B02B1; Fri, 15 Mar 2019 15:52:04 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CE8626B02B2; Fri, 15 Mar 2019 15:52:04 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BFF5B6B02B3; Fri, 15 Mar 2019 15:52:04 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-yw1-f70.google.com (mail-yw1-f70.google.com [209.85.161.70]) by kanga.kvack.org (Postfix) with ESMTP id 95ACC6B02B1 for ; Fri, 15 Mar 2019 15:52:04 -0400 (EDT) Received: by mail-yw1-f70.google.com with SMTP id d18so13189715ywb.2 for ; Fri, 15 Mar 2019 12:52:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=z/lbJIk5a8zt10jywFDNy5ZdetbtZxhqc2S4ejPNJ3g=; b=NM4OlT+vecKc0Y+5UYTrQgLIejnAYZe3TPjXmGzh+P2lbJt3lOoocsE9RLfJzjy81n +/QBG6goNNm0Mm2WNrw0fxKXQpPJVoPyZ1NDwG8L2xMMsVKJYP326UqvPaVRqhX3+lD/ bbTOsmp0AWmrzrpktVQtqEjvZ5csFwpkZlRLlpGv6oXyQYrSLiAJD7FBssv45slhD/kq QdJI2oXeQtRgMBKlG5RgCBVpZWI4m3xGxTG0u1MlFGVZpQKeyxub6I+rwmco2oQkCLMO 1cjO0nGEN50tJKB4+XII5y/KXFyJ9RoWSvgqK85Q/4QxFqs34puhAQQhCzQBGYK/fn1/ obNA== X-Gm-Message-State: APjAAAX42f9yno+01LmttRo8CWkujbamBN2wWrBxtHZgny9O95gzuBgA ArpluNigecwQAsWF4D5mpPS0HGkwXRWaRfyHF+/GqQ4c3Dl/tiBArw+g6yhK1n9N+fJatvnVNsb KpUXWSnm7b65DM8W2nvMCANFfvx8Wq14sOihJUgL7YImUb/M0230iTxleWQYHgcMRZQ== X-Received: by 2002:a81:a08d:: with SMTP id x135mr4545620ywg.278.1552679524374; Fri, 15 Mar 2019 12:52:04 -0700 (PDT) X-Received: by 2002:a81:a08d:: with SMTP id x135mr4545563ywg.278.1552679523299; Fri, 15 Mar 2019 12:52:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679523; cv=none; d=google.com; s=arc-20160816; b=RQNn+IQ9TJsTuCuYk4ak+nkP4Q3SZewlK2Em4JSui86qpxtvlmsZc6iJPCQOnPnrMC dFftTd1vY1ykW3cnjVG9Dguj20PrYaBamnslBC5YZM7siQlodZw4BjKQWQMDJM1BDOjc LKvCXl18H3EW6crW+APP6FDkg6bWn98CfeFdsgij2GAZhYmekoOrde+yHB80DvjVdYTk HM+yO4QO5nXvqxnkDBnz3Hr7Im2mEBuXqUAR/VwveIYMUoIEbUDuWIT2yXUvRnxv5NiL iTDEQBwS2wBMFSMz7gE+E2ek2AvBXnRlEQoI3UJlWEhOdapEYNfsP7GSD8+BG30Oncb8 jfDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=z/lbJIk5a8zt10jywFDNy5ZdetbtZxhqc2S4ejPNJ3g=; b=LxZQvRL8CiYqlzM9FuOlHLgY9P+pTlBjWfegaDCPepU9TG2i3k+7SKoK0YwIqaB0c6 bXSMzvo77NtfE+WFbiuVUIuF2HoibixVotHrgvxPydMI+Lk4fN5SMeqeLgSyKjLKvpaI daWLUR7scPWcsjHXqr3twcb4/+2axGthTm9mvkuFxfCcCre5nE3lu5EVJMo+6I3zjzzg asxbQwzuAE/d1EaYgHg79FvVJTq+6swR3sWuBzKTS2n6hFa2XVKEjaHlDsEgnvq+FN/7 Suu86zZ8fJc8hw47vhBHWq4lu6CIF9xWd6u3lZI31pu2GL6DHjVukq9y2VDegS0i4bK4 MF6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="vzUF5/hV"; spf=pass (google.com: domain of 3ygkmxaokciefsiwj3ps0qlttlqj.htrqnsz2-rrp0fhp.twl@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3YgKMXAoKCIEfsiwj3ps0qlttlqj.htrqnsz2-rrp0fhp.twl@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id h74sor537782ywa.130.2019.03.15.12.52.03 for (Google Transport Security); Fri, 15 Mar 2019 12:52:03 -0700 (PDT) Received-SPF: pass (google.com: domain of 3ygkmxaokciefsiwj3ps0qlttlqj.htrqnsz2-rrp0fhp.twl@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="vzUF5/hV"; spf=pass (google.com: domain of 3ygkmxaokciefsiwj3ps0qlttlqj.htrqnsz2-rrp0fhp.twl@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3YgKMXAoKCIEfsiwj3ps0qlttlqj.htrqnsz2-rrp0fhp.twl@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=z/lbJIk5a8zt10jywFDNy5ZdetbtZxhqc2S4ejPNJ3g=; b=vzUF5/hV3N6LymY3D+bJBpSatNRK6fXpwnZa/1KVNOg7xeGxEXTPkbw+wbEOfgpNDR np5G4rL7T1cd+Sz5iJ0RCOtU4P6bLZVS0l14Aq6zvISFR6mzBUWQWKFDoL13DmN3dbM+ SpIGClyUMZd9169+i8j5m3A6jrJ+Hyb10rwBPEQoaeyLAtm17DlPNuWH2RVG7xX1Y6TF 9LKSfozE1SWXebNzzat2ugJn18cSW7bw5YZG+7kazfWFB4UEOKlKg3watEf4bHP24M7o 9DP2o8Vqy0brwdDfGOvD+zN5V6FQV40T4Y8K+j9OS7OnApB4pexBW7Q518EArWyVitEY H6yw== X-Google-Smtp-Source: APXvYqzi5LEkko6ByM4uqeA/ILUmpPQs4A8NqtI2/DdkNKEbP39lGUp9icnx2HlBixyjeGCue9FZGuIPU0jeuK+1 X-Received: by 2002:a81:8a46:: with SMTP id a67mr2389102ywg.26.1552679522975; Fri, 15 Mar 2019 12:52:02 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:30 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 06/14] fs, arm64: untag user pointers in copy_mount_options From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. In copy_mount_options a user address is being subtracted from TASK_SIZE. If the address is lower than TASK_SIZE, the size is calculated to not allow the exact_copy_from_user() call to cross TASK_SIZE boundary. However if the address is tagged, then the size will be calculated incorrectly. Untag the address before subtracting. Signed-off-by: Andrey Konovalov --- fs/namespace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/namespace.c b/fs/namespace.c index c9cab307fa77..c27e5713bf04 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2825,7 +2825,7 @@ void *copy_mount_options(const void __user * data) * the remainder of the page. */ /* copy_from_user cannot cross TASK_SIZE ! */ - size = TASK_SIZE - (unsigned long)data; + size = TASK_SIZE - (unsigned long)untagged_addr(data); if (size > PAGE_SIZE) size = PAGE_SIZE; From patchwork Fri Mar 15 19:51:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855495 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 95BA013B5 for ; Fri, 15 Mar 2019 19:52:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7DFD32AC53 for ; Fri, 15 Mar 2019 19:52:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 719C72AC52; Fri, 15 Mar 2019 19:52:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 071412AC52 for ; Fri, 15 Mar 2019 19:52:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 792516B02B3; Fri, 15 Mar 2019 15:52:07 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 76D2D6B02B4; Fri, 15 Mar 2019 15:52:07 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65AD66B02B5; Fri, 15 Mar 2019 15:52:07 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by kanga.kvack.org (Postfix) with ESMTP id 3D3576B02B3 for ; Fri, 15 Mar 2019 15:52:07 -0400 (EDT) Received: by mail-qt1-f197.google.com with SMTP id b1so9684360qtk.11 for ; Fri, 15 Mar 2019 12:52:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=z6K/c9VtqxQi5aBAmUht43d+X7x4sfj8BAD1AB++2bA=; b=afH2qIDeiEjQeTvRUAm5n5PdmBGHqYVKeXpnCSJMJdwHHLY5tmxwPXgR7X90w0QniV OHGkQgfQmx3JoSk+ksabTjpFOeWjjIhPlX9NfUbUEmShW5obuG3ECjYIjgzpb93wbOiJ np6iAIYzdlMOz2ARDyYPXf/FnmJPuctbea2chTQRnaDq9/CAePBLP5oKZwZS3XBsiJCX TeniSprnOhIu0FSGhm+Oh5mDch8ltl/NwdyhuphrdKMOQsai1jBDcirner1E00CIbqWO m/1A9qJDLhDGq7ZFX1Z2tNM+HcTaOM+R5v2ejK/ibv26E5HqqYLAF77Bfsuxg9WnLDqa wimg== X-Gm-Message-State: APjAAAUtrtVdWJa6bVtiuCbpQIZOzBqhHFc/ngZkoBEv+LZ6fbVlmsIU gqtqzenqfGXE8Kh6+VPBIlHhcVtw2sKT8ye3xuGhVTXFgEPh2iC6/ynm7vOzArFpTZ+NCTcsXDL I5aoeY/s8T5VyZIgWRybmSPwZwAe813BmSMZ2POQjYLftlieWw1gXzzeIJ99FJPXQzQ== X-Received: by 2002:a37:c517:: with SMTP id p23mr4311093qki.167.1552679527041; Fri, 15 Mar 2019 12:52:07 -0700 (PDT) X-Received: by 2002:a37:c517:: with SMTP id p23mr4311049qki.167.1552679526287; Fri, 15 Mar 2019 12:52:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679526; cv=none; d=google.com; s=arc-20160816; b=VCI+D7jX+lRdtCraqVetcw65KqAFKnyGUjLbu+ppnBB5wm7XFIgxundlyHU3QOxBNR 0cm+jalyH0ofYFiz3eg7HD0GsQPANN11Nj0lTJrkHn/vjWqU35J5I/Q0LlMuNSqdU9Ge n88L/tlO5/i2uabu9eJQm14vTwevIHtY0KSSuvfHH8udJaPd1yCys3rOMXfWyUa3eOnL S8o8vojnRFZ8AoLPpW156XmC2f/+TRhERDbFgvL2GiaJ9gzb4XumyUpmDOgpLBvTfQuL ZyIYgsgypIQ8tZV71b8U/PF1DLTwK2z1F4Y8CIibMngLRHNrN1v2ifDGuY125uSKrnRm yiuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=z6K/c9VtqxQi5aBAmUht43d+X7x4sfj8BAD1AB++2bA=; b=LtNezxaL3k47FXUF+UzXjtpzyptYx08Ikcs19R7XAV0l10w/RQCLfDhfiX+yxPbfmL X3I/+y34kl3agXW79BDi3wIwxvjQI4q+6JyF4y0A7jhwUK5wY6n21FXORk8QGUIpuapA r46s7XNbw3io1LWbhNHj6+KNjwCTkc+PzPoQDwepomR/q3Nf+P3EzhQ/HXRNFCrlZUQP /vso9x8YO7MY9bns1EDkJ1oxCYJJFs5GJAQzkycTOKxh5x3s/847DVPXJj33zfKG7P8Q 9RbdhCgXmAnt0urUJHfmtRIXfQuxcv8a/dxJ+LSa7smGY86l1f/tH+uSyzGYPHmQZv99 IYyA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BOrKvCBJ; spf=pass (google.com: domain of 3zgkmxaokciujwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3ZgKMXAoKCIUjwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id c42sor3656316qtc.60.2019.03.15.12.52.06 for (Google Transport Security); Fri, 15 Mar 2019 12:52:06 -0700 (PDT) Received-SPF: pass (google.com: domain of 3zgkmxaokciujwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BOrKvCBJ; spf=pass (google.com: domain of 3zgkmxaokciujwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3ZgKMXAoKCIUjwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=z6K/c9VtqxQi5aBAmUht43d+X7x4sfj8BAD1AB++2bA=; b=BOrKvCBJgVmoeAFlZRf59PYgkXTKjrRMRrX63X976vqS2WZ9qHZEKHeBVwJtTWhSuu lUvSWiTVC/sbszWaQppDDR/3GWTkX31v65WrFbh4cWKv7GdWuy0PXeDkNLjKRPen898X V9cymVDbaCKNbzgoG3JjfivP1S/Za/rbL9bJ2fcItc9gQOVwpi9wJOepWPz1VdAZPUT1 cjQr07t64SwJCV+OZh/j0pkNHMF9Z/MNDj5cHLhFPLalavSnR7OPvVyx0xN4qyU3goh4 CsFQJ7ZthwFgkdSG7A7Q7uo8+32OwkFTx9gfh1M9rs57t4EWTuZWy/0ZLkAzrIEKwWdx tB7w== X-Google-Smtp-Source: APXvYqwJfi74QVD/zofU2P0/g2gg7ooywVFBEIF7szplHks32+LZURK6/93aOzRnjw5Hkh4ZybpGRgonk8XbJOel X-Received: by 2002:ac8:3798:: with SMTP id d24mr3191740qtc.40.1552679526081; Fri, 15 Mar 2019 12:52:06 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:31 +0100 In-Reply-To: Message-Id: <4368bfa2a799442392ee9582dd1cccb8c96e524d.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 07/14] fs, arm64: untag user pointers in fs/userfaultfd.c From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. userfaultfd_register() and userfaultfd_unregister() use provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in these functions. Signed-off-by: Andrey Konovalov --- fs/userfaultfd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 89800fc7dc9d..a3b70e0d9756 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -1320,6 +1320,9 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, goto out; } + uffdio_register.range.start = + untagged_addr(uffdio_register.range.start); + ret = validate_range(mm, uffdio_register.range.start, uffdio_register.range.len); if (ret) @@ -1507,6 +1510,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) goto out; + uffdio_unregister.start = untagged_addr(uffdio_unregister.start); + ret = validate_range(mm, uffdio_unregister.start, uffdio_unregister.len); if (ret) From patchwork Fri Mar 15 19:51:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E63C817E6 for ; Fri, 15 Mar 2019 19:52:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D4AF62AC52 for ; Fri, 15 Mar 2019 19:52:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C751E2AC54; Fri, 15 Mar 2019 19:52:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 64E8A2AC53 for ; Fri, 15 Mar 2019 19:52:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 263916B02B5; Fri, 15 Mar 2019 15:52:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 23A806B02B6; Fri, 15 Mar 2019 15:52:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1508F6B02B7; Fri, 15 Mar 2019 15:52:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by kanga.kvack.org (Postfix) with ESMTP id D570B6B02B5 for ; Fri, 15 Mar 2019 15:52:10 -0400 (EDT) Received: by mail-oi1-f198.google.com with SMTP id c203so2694817oib.20 for ; Fri, 15 Mar 2019 12:52:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=o99IPl+uG2EzV+A51yAxAJoGFkhXN8vGRgmKAMdYgSA=; b=LmjCIuSYvQXDgkCArSRZR8oe5ZGe9crCxZqGm4CYJSq36DScto8sAs7oAvwY21a/lN j9KxbiY4G515BzomSyuJ7XiJB2S8wqkowVFONNXtUzg5IN5AyiaOStC7jRmSRp2dGqEF 9fJKj/rUZG6vFhbkOi+l87AFBdper9tQQQT3v7UKNbQmpae4FNAgAIZYwbNBuFBH+U/2 TSzcoaGKw/WR2k2p/uU2+txY5qn+stBQaMPxHBe/MiZ9a/8UdW+9Bh0fEnbW8SlLh/5o qKem/t5+fxuMhZ3j7SECQ3pura3zwM4PVaDtd2AQoIPG+iSr1OavJJV+BbvHa5PuBznz yhUg== X-Gm-Message-State: APjAAAVVjHtQ7MVI+C3yQjybfd8gT0n3rQbMxLx3vo1H4x5yYaPiq1OH 4PC8IubyjcDrz7jbzH0DCM1d0CZywaczRlISPx7QMd2oNxG3nGd/ODs/fhJkR2B3v0WX84E6t3Q JX8m4q86HCIv+UB2Lv6pc9sYwyf6toHm6skeO0yR7+VOkGl4dlN/AoVpr2PTiBP1jnw== X-Received: by 2002:a9d:6515:: with SMTP id i21mr3368544otl.325.1552679530427; Fri, 15 Mar 2019 12:52:10 -0700 (PDT) X-Received: by 2002:a9d:6515:: with SMTP id i21mr3368510otl.325.1552679529653; Fri, 15 Mar 2019 12:52:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679529; cv=none; d=google.com; s=arc-20160816; b=MGtOB1Lr9yEo7N9K0T2ElQkVjQ3tG+n5GD5/78Q42q91P8vRDu0uX1sdUrVlBPdFiO fq2bWZS7wjQyzvaT1TxQh9F5izSngSpC8ZXRGXFr4AoiH1gAb651SMlqYU6ZAonvOvp9 I0lJSPlavzo9Rsr6JHnNO5UgYXMRZocp2hqj9c3BcBMgO6GaqOg7ysJ4ZktYI0cfWOiA ZJstYdwRjjEfgow5UqG1AJf0Q40ldn8Nwij/ZC+AbM9weeldTLaPy0+H5ft91QP4Wc6E 4h3ZQWGVtwqDux1pxWUqkSmKBFkOARYph0Zgh5nOjV7Np399D9Aj68msg+Hip9pTdnf5 hULQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=o99IPl+uG2EzV+A51yAxAJoGFkhXN8vGRgmKAMdYgSA=; b=TVdCXdBgMqMo9+nESj7n+NWCl2E9Emhc7ypK1DduvDO5U+usD/2zacTlny6PoPpY1x ljSweOtbJHLtGc/VZQRhSZAQkxij9KwP8b7L8GRX99vUU/Upmk04PfzreVteVfGs3hsh PEQ5vvpLbYPe+owx0A71VPtxLA3irWI/q+MrrLzxBOJpy5ePkJCH0KQPfTVZutVvd+1x 6ustZV+E//mCCpSzLYJg6RsXYiJ/IHWVlIJxWOFzyZ1dO5pxgNwQbSc3RewNIhTEWBHm //VNmhCGzgg4kIkY3atZ1InauyoNvxeDcr1tVGHRT8avTUl0n/VShG/5GZ2ZvaYpNHoE oyxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=qeml8KMl; spf=pass (google.com: domain of 3aqkmxaokcigmzp3qawz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3aQKMXAoKCIgmzp3qAwz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id b204sor1762046oii.147.2019.03.15.12.52.09 for (Google Transport Security); Fri, 15 Mar 2019 12:52:09 -0700 (PDT) Received-SPF: pass (google.com: domain of 3aqkmxaokcigmzp3qawz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=qeml8KMl; spf=pass (google.com: domain of 3aqkmxaokcigmzp3qawz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3aQKMXAoKCIgmzp3qAwz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=o99IPl+uG2EzV+A51yAxAJoGFkhXN8vGRgmKAMdYgSA=; b=qeml8KMlP7rmAvIxGUwmqXR6s58tv3WFmWASkki2NWsIADrbc1k8lfVc0+MTWbLpzs TVLOcfO6bk+g3/mT4x135nyZgaRh/a1cI0EJSPVigzGsRAp8PAEjxUHPFZAzqhmXZx4l 8Q3KL5oxK5OHSh9sOaBJzftYgvN7gNgSHSwrNoWatq8tKEtYq3SVrekzbwazA+QWLKeH U6r1Zznc3OnEUZ0dR61U5DX56ScUlBeamodtGHalBVARU3JboxCMy3bCQIt/yf/PIiTQ 7ti2uUkzpKUEL7B+2/dvfA9GvioOMJDdEfC7KsiAuJ+0KTfpgnd+IOQxpTKu3Bl4+qOo qSqQ== X-Google-Smtp-Source: APXvYqxLoKEgsAEPjIF9NsjndQ5gVGqmokYLJoZMnp0FGqwROodj4iKJAPngQ8EF97Yh5xKIjIbFflxcHuXMaJlJ X-Received: by 2002:aca:2409:: with SMTP id n9mr3111631oic.19.1552679529309; Fri, 15 Mar 2019 12:52:09 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:32 +0100 In-Reply-To: Message-Id: <56d3373c1c5007d776fcd5de4523f4b9da341fb6.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 08/14] net, arm64: untag user pointers in tcp_zerocopy_receive From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. tcp_zerocopy_receive() uses provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in this function. Signed-off-by: Andrey Konovalov --- net/ipv4/tcp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 6baa6dc1b13b..89db3b4fc753 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1758,6 +1758,8 @@ static int tcp_zerocopy_receive(struct sock *sk, int inq; int ret; + address = untagged_addr(address); + if (address & (PAGE_SIZE - 1) || address != zc->address) return -EINVAL; From patchwork Fri Mar 15 19:51:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855501 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8138113B5 for ; Fri, 15 Mar 2019 19:52:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 688092AC52 for ; Fri, 15 Mar 2019 19:52:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B5372AC54; Fri, 15 Mar 2019 19:52:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DB7662AC52 for ; Fri, 15 Mar 2019 19:52:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 632AB6B02B7; Fri, 15 Mar 2019 15:52:14 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 60ED26B02B8; Fri, 15 Mar 2019 15:52:14 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F8636B02B9; Fri, 15 Mar 2019 15:52:14 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-io1-f71.google.com (mail-io1-f71.google.com [209.85.166.71]) by kanga.kvack.org (Postfix) with ESMTP id 2AB556B02B7 for ; Fri, 15 Mar 2019 15:52:14 -0400 (EDT) Received: by mail-io1-f71.google.com with SMTP id p17so7804791ios.8 for ; Fri, 15 Mar 2019 12:52:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=qCZblj86ukutCUgaNEezPPnSo6jFx7c0S/27D3+g5SQ=; b=piESSDh+R/WP+h/D0brrqnL3yx5WykDSupILKnFtYVsF0865UfLS4dTUstB7YNgYRC vZqtXlvylyH0W5EIXEkhQlWLcettajMqEsDuemeAfcbiWsveb/HDBmEJE1ue4ybz7f4F q6thJ7wKzT4veRgNa+cK8iarvMpc46Nr7lHeeIEPp0n9ICRjio6qjTIjLNAeg0ZhXdSx Egr/ldiQMLJ1cBxdZfDvU1I4u4zAU4MRanon7V3fWgFls+VkOPC/2fxHzeX5o7CrmlfS LLLXtRM/3FbYhq9U6jKv+q+oXseIG4jwfc8t6COi+tkNXVdP6Ep2kP9XvmtMnlcvhPUx ddJA== X-Gm-Message-State: APjAAAVVMTS9biWiCutGm6AH8elTIq6nm1MEYeBAVmJM53dwtoqcqwes fPzR6XBDqVupPtojJGBh276GGfmd80EXJzKnv0qc7Y/AiK5Bopu1Vtc+iZuRwWaPF8NrkyIeBiu kTU4v4sUoK9HCeIb/RuAHmj68koUw1AlJ7WJ/tR2n5JXTcPTK3vKJ3Xp2SEBhZxzTdg== X-Received: by 2002:a24:62c2:: with SMTP id d185mr3259622itc.45.1552679533935; Fri, 15 Mar 2019 12:52:13 -0700 (PDT) X-Received: by 2002:a24:62c2:: with SMTP id d185mr3259580itc.45.1552679533045; Fri, 15 Mar 2019 12:52:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679533; cv=none; d=google.com; s=arc-20160816; b=qUa6CRi7k4W8gBVsQ9cT2V5bYFf4OiJ/oyajBVgiuoilu+30VUxG4Bb8v4teG4CX8I mqg/jqPCohIRugMS+IKyVjt5ebFtO3jyL/dM0IkwDdu7+hdXIpYHrdSIc4aAn8raWdtf 8SZcfWWEkOKpYfLr0x3/8ObgDpgsE7MYytCucuT6+48MYD2MopEIvFAsH74wCI3yhPDp zhnXNstiPQQtn+9o2JwGMsV4BIskZNLlaEMXl1/mRGVP7/yXYLh5KJVaL9u/brCRlePB x6s2GOZs8iBwRj6I17A9ey2Tbvl+caQN6wmZsN3lk36CuUwBdUDUxsjncSCRkD+gan+i SGWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=qCZblj86ukutCUgaNEezPPnSo6jFx7c0S/27D3+g5SQ=; b=huQZlewdsJ0sDCJioQjVSl+HgTRGjUlhjzqRhmgMGpAKIQCwK3eOsXOUWoOf6aFiT0 lvqhBS1t/rjbJEbeHBugWlSsI4DX+c79nsPZomgMNGWYePQK2xQVNG+wpL5lFHljpoNj FGnee6GLey4PXLK77eMx095TBESR3OsusI1ybYWNNhA7df+uzE+0RFOD7o5VT3t/ztCz coT1d0pnuZdZdZrwpp++lH/m+qScyj2HBFxox333E8xGvj/PUkPIDcYbYVQ8WWjGN7ek DWZx++8gjbpJi7E1h/XKf6ZeOded9v+Ez+J2VERuvV5kgaHN+fuAEichuyZAHORbvXwF t7Dw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RV+qphgR; spf=pass (google.com: domain of 3bakmxaokcisp2s6tdz2a0v33v0t.r310x29c-11zaprz.36v@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3bAKMXAoKCIsp2s6tDz2A0v33v0t.r310x29C-11zAprz.36v@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id t17sor5408728itb.14.2019.03.15.12.52.12 for (Google Transport Security); Fri, 15 Mar 2019 12:52:13 -0700 (PDT) Received-SPF: pass (google.com: domain of 3bakmxaokcisp2s6tdz2a0v33v0t.r310x29c-11zaprz.36v@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RV+qphgR; spf=pass (google.com: domain of 3bakmxaokcisp2s6tdz2a0v33v0t.r310x29c-11zaprz.36v@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3bAKMXAoKCIsp2s6tDz2A0v33v0t.r310x29C-11zAprz.36v@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=qCZblj86ukutCUgaNEezPPnSo6jFx7c0S/27D3+g5SQ=; b=RV+qphgRwIM0BlYxCZg0JlfEjDx5G2b5L8ZyFpBg6xhggSYfsl1Fqr2nkYw/1uo2gs 3X2mnJn0InykZb95Oc3LklEnd5abQO0mxyfCWv4ktefYvvvkA3igSCrt3kfSvFnDcJd2 yiTPCyZxoNT8Y3VZrTwxne1jWphT3yMFgfIrreIXZfWc85uza+QqmGRI+KRoFp3SruIJ AoO+ZWZNEwD/TFL+4c5NovYe7UTZj9KfYqP4IK256g8ihlekEEHLF6pJB9120lvwCNGI YKyN4okwCGSEeBvRd5Hm2UUrZHroN4fPZmCKFLzy7try938Sv18vPjuWwinYuq9JIjNh YyTA== X-Google-Smtp-Source: APXvYqzF9kP75AZrtaf7n0FWkgnfxl6FIrePx6iNETztWTIe/Q/kL5cqZ/6EOdqOX8uD9nyrlgZxURKjMjdTQ+yZ X-Received: by 2002:a24:508e:: with SMTP id m136mr2945070itb.34.1552679532548; Fri, 15 Mar 2019 12:52:12 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:33 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 09/14] kernel, arm64: untag user pointers in prctl_set_mm* From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. prctl_set_mm() and prctl_set_mm_map() use provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in these functions. Signed-off-by: Andrey Konovalov --- kernel/sys.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kernel/sys.c b/kernel/sys.c index 12df0e5434b8..8e56d87cc6db 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1993,6 +1993,18 @@ static int prctl_set_mm_map(int opt, const void __user *addr, unsigned long data if (copy_from_user(&prctl_map, addr, sizeof(prctl_map))) return -EFAULT; + prctl_map->start_code = untagged_addr(prctl_map.start_code); + prctl_map->end_code = untagged_addr(prctl_map.end_code); + prctl_map->start_data = untagged_addr(prctl_map.start_data); + prctl_map->end_data = untagged_addr(prctl_map.end_data); + prctl_map->start_brk = untagged_addr(prctl_map.start_brk); + prctl_map->brk = untagged_addr(prctl_map.brk); + prctl_map->start_stack = untagged_addr(prctl_map.start_stack); + prctl_map->arg_start = untagged_addr(prctl_map.arg_start); + prctl_map->arg_end = untagged_addr(prctl_map.arg_end); + prctl_map->env_start = untagged_addr(prctl_map.env_start); + prctl_map->env_end = untagged_addr(prctl_map.env_end); + error = validate_prctl_map(&prctl_map); if (error) return error; @@ -2106,6 +2118,8 @@ static int prctl_set_mm(int opt, unsigned long addr, opt != PR_SET_MM_MAP_SIZE))) return -EINVAL; + addr = untagged_addr(addr); + #ifdef CONFIG_CHECKPOINT_RESTORE if (opt == PR_SET_MM_MAP || opt == PR_SET_MM_MAP_SIZE) return prctl_set_mm_map(opt, (const void __user *)addr, arg4); From patchwork Fri Mar 15 19:51:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855505 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A349517E6 for ; Fri, 15 Mar 2019 19:52:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8BE482AC53 for ; Fri, 15 Mar 2019 19:52:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7FD0A2AC5A; Fri, 15 Mar 2019 19:52:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F11BC2AC53 for ; Fri, 15 Mar 2019 19:52:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D6256B02B9; Fri, 15 Mar 2019 15:52:17 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4835E6B02BA; Fri, 15 Mar 2019 15:52:17 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 39A476B02BB; Fri, 15 Mar 2019 15:52:17 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-it1-f197.google.com (mail-it1-f197.google.com [209.85.166.197]) by kanga.kvack.org (Postfix) with ESMTP id 145E86B02B9 for ; Fri, 15 Mar 2019 15:52:17 -0400 (EDT) Received: by mail-it1-f197.google.com with SMTP id q192so8572895itb.9 for ; Fri, 15 Mar 2019 12:52:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=xQk3LhthwaCSqxwCcTkNdlxSKZFnDFG1SS+E3EAFA9Q=; b=nNm7DSI/Y1A1I0zIXzaHqy02WacQnrY3euh3hFMQ4ptvcrkDE52MybZaOhddPFDxD0 b8qV2LoJm3dYnkFGLW1Iqc76BUTEdZGBS9fK/97GWCHV1LgrOpw/h/D5W2HYl/lNjveF NSrFwNP/kXp6MP0lzpVDjq7XmtmOybQK9+WnjNz7PpypArnTQNeGOmSkrsd+cLvDXRtt pL7gwineYAdbcvlyXnStOV+oUdUm/+2WWeILk6ZrounivdGbAYaztOPBuA2ztZdIpTRJ zE2tTCbzCPYPUpF/GQvYx4/Dzshg4zL43FtCtet9FP4f8YcpH1Dwwmm7luzIWs7NyOJ6 Tszw== X-Gm-Message-State: APjAAAXKwpyG7ilc8zVfNPuhcsFbzwIcL9Gxa1Vio/fwRHn4+bcrF7wQ /Xo3dsUxyqxGxUmMNQ+advzCAX381ZEFs0NOUUK6Nsv6c0XQYNhoCVEEFBd4BYyBv5sw5BkYrxy m/A8ygqR81H7Os8xOnjZWHJqn2ZHR6uOAVGMydE/9Loa8HhKD6LANEHOdoR54Jf1FEw== X-Received: by 2002:a6b:e305:: with SMTP id u5mr3499512ioc.262.1552679536829; Fri, 15 Mar 2019 12:52:16 -0700 (PDT) X-Received: by 2002:a6b:e305:: with SMTP id u5mr3499476ioc.262.1552679536011; Fri, 15 Mar 2019 12:52:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679536; cv=none; d=google.com; s=arc-20160816; b=box9ee1g0O9MhJuOt2n21W1iBqBmE7RkfDSMfWQpatzP7lz2W8w24t5fYfTuv80VaU dXJIGhxN+mBAwFxmu2Jx/ZENbajhBF1XImr/tQEu9Ns59sWdXW09eZrntn0Ueo8M0kNx 4MIYr7zD3rjpeR93m/YnB08LU1cmRYbXk3Kv5hhmHeB7RwESDFRnok0vwh1/JIa+6raH 4sq18nEhm8kEKR8SxOoLZXmBs/5TkTMX91vxYDzL0qDq/OyK44+4JqkLQHSFAFpIIdRN uwjKvIWVvMmAodVTAIAhx+APttIRiSe/OswedfvYIw2iWouG4z/fjkIQBW2nVlAKG8i6 hbKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=xQk3LhthwaCSqxwCcTkNdlxSKZFnDFG1SS+E3EAFA9Q=; b=G4o1K4ryzozXaRQU8aw1O4+htmSUhOZZ3iDg4gC8VZwqSg9Rst1/bnOEGHh3Srji7S mAA3F8yhnFxBNBfzjMpU8NjHr0b5DVb9r3C72tV4NvNxL0fRLN6626hjxOBe2Hv1q5LS aDDSxTXzLFxEzOK2SzIFZboFPV6qthDkTNwWGuVsOn13m9uNKi/NnG5HyzWs9qoxeoDq GWwPJLwVF0TPMxY7h08uY/yQzUqJwG9NwJgx9sIfJWlAX3wJI6EnS+jOqUmXGcU/Ro84 OTu6Q4DcXJlS1cWU9qV2Pyl+vKseqbXHwbRgxlQcOo+R2DjQaY9Gd+vFObobUrokzUmE fDig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=erlzrsrP; spf=pass (google.com: domain of 3bwkmxaokci4s5v9wg25d3y66y3w.u64305cf-442dsu2.69y@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3bwKMXAoKCI4s5v9wG25D3y66y3w.u64305CF-442Dsu2.69y@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id d66sor5106930itd.18.2019.03.15.12.52.15 for (Google Transport Security); Fri, 15 Mar 2019 12:52:15 -0700 (PDT) Received-SPF: pass (google.com: domain of 3bwkmxaokci4s5v9wg25d3y66y3w.u64305cf-442dsu2.69y@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=erlzrsrP; spf=pass (google.com: domain of 3bwkmxaokci4s5v9wg25d3y66y3w.u64305cf-442dsu2.69y@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3bwKMXAoKCI4s5v9wG25D3y66y3w.u64305CF-442Dsu2.69y@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=xQk3LhthwaCSqxwCcTkNdlxSKZFnDFG1SS+E3EAFA9Q=; b=erlzrsrP8VxBF8HsFBwQbTIFhbizEW/LsVQAb4sB9lxRiyqjhT4uCp2723IUY/w0as JDSkvwBZ2J/k/0Gr8MvYLy9+lPaE5Mbr5BxZqaj+B32fmuQao+20kq6UQFBqlr7iQum4 OAinUJ/2Tst5Nnic/IJVxsAPWJiUr5ue6Sg3ulcVoob/1X/OiS7RpGt905f6Qew6MgNY JEYORaq1c6WpaRg5DMZPoFljR7vI3/R+mQc61CKtUt4qxBTghm37TZV9KMnlkevHn6ql TPeg6qjkBgZQMlJkzr6XuOqDJLnou/KO5tmMMN3Tj/QArlELFQfSt7I9wSsT8s02fKRi 2vzA== X-Google-Smtp-Source: APXvYqz+GmruJTwbh+y6ScEKk8ZO6w3sULpD4k9iq4Qem8c0s9TmhOALFGnTHkcM6tlN06h5Rlqmfno2APVO8t8L X-Received: by 2002:a24:2b45:: with SMTP id h66mr677136ita.28.1552679535681; Fri, 15 Mar 2019 12:52:15 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:34 +0100 In-Reply-To: Message-Id: <355e7c0dadaa2bb79d22e0b7aac7e4efc1114d49.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 10/14] tracing, arm64: untag user pointers in seq_print_user_ip From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. seq_print_user_ip() uses provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in this function. Signed-off-by: Andrey Konovalov --- kernel/trace/trace_output.c | 5 +++-- p | 45 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 p diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 54373d93e251..6376bee93c84 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -370,6 +370,7 @@ static int seq_print_user_ip(struct trace_seq *s, struct mm_struct *mm, { struct file *file = NULL; unsigned long vmstart = 0; + unsigned long untagged_ip = untagged_addr(ip); int ret = 1; if (s->full) @@ -379,7 +380,7 @@ static int seq_print_user_ip(struct trace_seq *s, struct mm_struct *mm, const struct vm_area_struct *vma; down_read(&mm->mmap_sem); - vma = find_vma(mm, ip); + vma = find_vma(mm, untagged_ip); if (vma) { file = vma->vm_file; vmstart = vma->vm_start; @@ -388,7 +389,7 @@ static int seq_print_user_ip(struct trace_seq *s, struct mm_struct *mm, ret = trace_seq_path(s, &file->f_path); if (ret) trace_seq_printf(s, "[+0x%lx]", - ip - vmstart); + untagged_ip - vmstart); } up_read(&mm->mmap_sem); } diff --git a/p b/p new file mode 100644 index 000000000000..9d6fa5386e55 --- /dev/null +++ b/p @@ -0,0 +1,45 @@ +commit 1fa6fadf644859e8a6a8ecce258444b49be8c7ee +Author: Andrey Konovalov +Date: Mon Mar 4 17:20:32 2019 +0100 + + kasan: fix coccinelle warnings in kasan_p*_table + + kasan_p4d_table, kasan_pmd_table and kasan_pud_table are declared as + returning bool, but return 0 instead of false, which produces a coccinelle + warning. Fix it. + + Fixes: 0207df4fa1a8 ("kernel/memremap, kasan: make ZONE_DEVICE with work with KASAN") + Reported-by: kbuild test robot + Signed-off-by: Andrey Konovalov + +diff --git a/mm/kasan/init.c b/mm/kasan/init.c +index 45a1b5e38e1e..fcaa1ca03175 100644 +--- a/mm/kasan/init.c ++++ b/mm/kasan/init.c +@@ -42,7 +42,7 @@ static inline bool kasan_p4d_table(pgd_t pgd) + #else + static inline bool kasan_p4d_table(pgd_t pgd) + { +- return 0; ++ return false; + } + #endif + #if CONFIG_PGTABLE_LEVELS > 3 +@@ -54,7 +54,7 @@ static inline bool kasan_pud_table(p4d_t p4d) + #else + static inline bool kasan_pud_table(p4d_t p4d) + { +- return 0; ++ return false; + } + #endif + #if CONFIG_PGTABLE_LEVELS > 2 +@@ -66,7 +66,7 @@ static inline bool kasan_pmd_table(pud_t pud) + #else + static inline bool kasan_pmd_table(pud_t pud) + { +- return 0; ++ return false; + } + #endif + pte_t kasan_early_shadow_pte[PTRS_PER_PTE] __page_aligned_bss; From patchwork Fri Mar 15 19:51:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855509 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A34AF13B5 for ; Fri, 15 Mar 2019 19:52:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 910C82AC53 for ; Fri, 15 Mar 2019 19:52:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8498F2AC56; Fri, 15 Mar 2019 19:52:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 012262AC53 for ; Fri, 15 Mar 2019 19:52:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 214D76B02BA; Fri, 15 Mar 2019 15:52:20 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 1C4386B02BB; Fri, 15 Mar 2019 15:52:20 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0DB4D6B02BC; Fri, 15 Mar 2019 15:52:20 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by kanga.kvack.org (Postfix) with ESMTP id E5C3A6B02BA for ; Fri, 15 Mar 2019 15:52:19 -0400 (EDT) Received: by mail-qk1-f197.google.com with SMTP id s87so4701881qks.23 for ; Fri, 15 Mar 2019 12:52:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=REP9LhKq3azFcE3epBwHjl0z4e4u8qSodB2K6JOUUqY=; b=K4T7gHqAzkGs+lUPB3oF4ZJFU7hhkYqUMvwrJRk+RgmgW+YDPFkKoqXlwIL/LM2NU2 JISL+8TaAw3m9FdhzRKtZfVyE3KHyi0Zg27jrNqbcfR0x8UfBnEQggcTBEs34ydzW2nz jiYBrFer/4J8x+xXOuRIKVjR7W30C9VRw9tVUvYARAp/6wAljuHXEIqj0zx+2oHvRg3s GPlhN/Qszai+b/Ad0vmojjL/pfa2uIVQ1h731uSrGt9dm3OlB5Jxst5B4wt9x3680viL CYgF/ytA/cEi1G/pPvC4Dz/9bm8kMjFjhdZxT0BfFgqEm7pDAej9Jw4JBys0L++OuvkT XAlw== X-Gm-Message-State: APjAAAXCC+eFOWmAzjv/brEn2owFGI0TinnLHDD7UVHcyZuxM4fn0JXb ufMo/KYEgZRRMBPgU31U5UKetf4+z6/XJkjp+FcUukEA/WaKz8H0prJzFwQ6iD/wW+/W3Dovu48 6b09rg8RRcZc7au1vnsq9+az6tVLZF2e4EpPmnAODii2xxdjfwyPK012XR50Tl2XqmQ== X-Received: by 2002:a0c:b049:: with SMTP id l9mr3986468qvc.16.1552679539686; Fri, 15 Mar 2019 12:52:19 -0700 (PDT) X-Received: by 2002:a0c:b049:: with SMTP id l9mr3986432qvc.16.1552679539016; Fri, 15 Mar 2019 12:52:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679539; cv=none; d=google.com; s=arc-20160816; b=M4qyzZjlRiuqbS4C92YaqGS3Jl83/HnKxT0k8WFqa4GAtSpF+s1kW20ywPY1EVhp+q VPq4SY4Zvi/u8/R3RcJt0nfDizpqt0Z7CydIIrWCviJWRsJKUJR0D6p4XuO/7fyNFwhf 2SUBD2nslRSffE3Xh142uxoglQ//gHvtjKKEcvtx6NcgS7DWJa+IUG26QFG9J5PQUgmx JFhSEj/7fJpUzfyfiW6zwEkGn2KMF/BVeniUUxyX8nLkykRxOVPRYMyF2d9jhQkjuL8P h9a+65iHdQzUMOBKmecYGfbp7awBCNdsdAhSf7dDqMDHtWnUttfzpkyt91jsOcudvzY5 SfyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=REP9LhKq3azFcE3epBwHjl0z4e4u8qSodB2K6JOUUqY=; b=Ob8PHV8noEp4QK2UfeSEI6tI8V1ca5ywuLg+E9Xi9DLXJARQSZ2HXtcsH64I/IMY63 ollsBUnQllYURBE0ZGXWcPjw+hVU8ZboaolFu+/vFMBZTZpMQJlt2GQj0SM3gh5K1Io0 874qS5JxUTP3sK52hKnj9UEsqwlMm0w4Yx5Tw/Sy1wxsLVslR6XSF1onMoH89c+AFOC9 8kpQzrrc9Ur1S0uAD/wbrOGBhuLCy23E0As9t2vLDyCzd36UlJ915oQ7++wpAxF/jmCG RNxxLozl0OFePayl0cniOWbeKreM5HWYHvn1LGOBp1dfLOFCBqhErePYEdpdkbBRxg/S GDiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=FNIVGISA; spf=pass (google.com: domain of 3cgkmxaokcjev8yczj58g619916z.x97638fi-775gvx5.9c1@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3cgKMXAoKCJEv8yCzJ58G619916z.x97638FI-775Gvx5.9C1@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id f49sor3741804qtf.14.2019.03.15.12.52.18 for (Google Transport Security); Fri, 15 Mar 2019 12:52:19 -0700 (PDT) Received-SPF: pass (google.com: domain of 3cgkmxaokcjev8yczj58g619916z.x97638fi-775gvx5.9c1@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=FNIVGISA; spf=pass (google.com: domain of 3cgkmxaokcjev8yczj58g619916z.x97638fi-775gvx5.9c1@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3cgKMXAoKCJEv8yCzJ58G619916z.x97638FI-775Gvx5.9C1@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=REP9LhKq3azFcE3epBwHjl0z4e4u8qSodB2K6JOUUqY=; b=FNIVGISAdAEFbreSsDDijAXV7iz7bJ+nqAbnQIHGv5JyzeZ7lcBCJx59d3veVulKlh 7jE3udTRD8ZB4FsTnM9RGbtkCH/mbxzWvFL0H4sXjQx4qi2m5t5ro7oy5rhM45nSVVBP 5ClTpMIvyiu2q1I0rCYKPmV2nRUW01xZpnfJIxUQMHQ44ykxwcrzRx307eckpZorbuN3 6VEq4E+w7Q2yQVpjsHzE5SdEEFgZlQL/gXacFSIer7uFwLUhfH2E6+fmsaTjr28zvsU3 LxduxWE/YJsel6dur8r7Ne5zecAEIXKRCQ6ztsVh51aCO/ECwJBztr37RmWaHcFGyfRo FPEA== X-Google-Smtp-Source: APXvYqwJcWbE90DsufpIchU1RWZDjZYiH/OdYEaqepbyMZK8dYdaYAIDqIiN21SA2dhnlvcWp5RKO708a/U1e0LV X-Received: by 2002:ac8:2d7c:: with SMTP id o57mr3149114qta.39.1552679538830; Fri, 15 Mar 2019 12:52:18 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:35 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 11/14] uprobes, arm64: untag user pointers in find_active_uprobe From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. find_active_uprobe() uses provided user pointer (obtained via instruction_pointer(regs)) for vma lookups, which can only by done with untagged pointers. Untag the user pointer in this function. Signed-off-by: Andrey Konovalov --- kernel/events/uprobes.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index c5cde87329c7..d3a2716a813a 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1992,6 +1992,8 @@ static struct uprobe *find_active_uprobe(unsigned long bp_vaddr, int *is_swbp) struct uprobe *uprobe = NULL; struct vm_area_struct *vma; + bp_vaddr = untagged_addr(bp_vaddr); + down_read(&mm->mmap_sem); vma = find_vma(mm, bp_vaddr); if (vma && vma->vm_start <= bp_vaddr) { From patchwork Fri Mar 15 19:51:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855511 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1D95015AC for ; Fri, 15 Mar 2019 19:52:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 06F002AC54 for ; Fri, 15 Mar 2019 19:52:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EE5C42AC57; Fri, 15 Mar 2019 19:52:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C38C2AC54 for ; Fri, 15 Mar 2019 19:52:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 91C296B02BD; Fri, 15 Mar 2019 15:52:23 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 87B076B02BE; Fri, 15 Mar 2019 15:52:23 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F6096B02BF; Fri, 15 Mar 2019 15:52:23 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-yw1-f70.google.com (mail-yw1-f70.google.com [209.85.161.70]) by kanga.kvack.org (Postfix) with ESMTP id 4719C6B02BD for ; Fri, 15 Mar 2019 15:52:23 -0400 (EDT) Received: by mail-yw1-f70.google.com with SMTP id l11so13014339ywl.18 for ; Fri, 15 Mar 2019 12:52:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=UI7aEl8s0mFedqqMgOc8iwA/qQRORzYcgfY9MOX1Q3Q=; b=A8bR0rHdJWEj5fwNaoE4YOojeRkLgF+HKHh3D/HsTPPLWXT5vuPMI819FPoGqpMdnq tqspJ+hhHmb6DkYIsSq/B5cy8dOSD0IckR9G7El8EyrpP5XN2SvVvrC5KPmN6SWX+OK1 2FfDvv5XTcwJRXG+026/B7AuosrKcoVhGXb7w3bVSWbxOrT8h/brugtRcCQKil9YVl1W 8+vIlOyurF63chjC8dfFGcI69JD7nASDUWcwBhTh5OhoL51AnAqCOhsfIE6UyE+MGbfj 5AE4OVQ8ZDzUj7AgCLPlAMQyqR+G6kQok4XSQzImNy3uTtkaWhmBvoR7GlDKlY5cdUG3 7fig== X-Gm-Message-State: APjAAAVEZLCmbFxcFcqLVdIKXlQKIZC5tk9KQerOG/xjRmIxbhiN3zPO 3AHCf17AogdTiDOv2EtC79If1jzl14xeOKGWBSeW8GVk3n8t4IAHc3sQKr9dec1RT0dgWr1sBpz +dbD//JEkp15u0UqHO93w6YmdTO43WKmYuSWgxW6J2HFey9vvaIOZ4rfiCInokzQiAA== X-Received: by 2002:a81:7206:: with SMTP id n6mr3803722ywc.75.1552679543056; Fri, 15 Mar 2019 12:52:23 -0700 (PDT) X-Received: by 2002:a81:7206:: with SMTP id n6mr3803677ywc.75.1552679542150; Fri, 15 Mar 2019 12:52:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679542; cv=none; d=google.com; s=arc-20160816; b=Ztbj5jmKstGMcpHOPHwks7FKqMJWA/stEL1l/zKO7der5EwPB0VxZb6mzT+YsTVeuy 1jQ8q//MVsX+yrlHL5xZ0KzA+r+3TTZFuw7GCch1sGGiX4YkEWZI5DYsAcGCLkSXdPoc i/kY7lfz89W/r/AiNajf++tXIE+EVIgIgTvjPbV9snwiszIK459JEzbsBDXDF3PP9YiQ UNs9dwp4JvC6K0zhW+cPjrmNtAvTZbQwNJ/GM+dP5li3f5tZECzOEHexe7qhDIbZhtDs kkaeDSN2jSAJ5vojCC1usd1ndq7ZNvKucfh6LtdqYKverOKukDOMIyQzD3gMuz0yukkO ZJhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=UI7aEl8s0mFedqqMgOc8iwA/qQRORzYcgfY9MOX1Q3Q=; b=MWeN1RZxx/tfjI1wvIm5dxfs0YPHv8BLm4dZa1ttM/ARC2qPiKpYbc1azTWJ9PjEMR qI0NVQQzaU9cCX+6M46YZJASYE3s8QfhF1pkAzv6tJXWcSSHaBpV8fT0BRJZ+OPz/yo4 K8tEdwjfUaME6qW/0xtyq1Fcqilp1bEtbA7HHCNPUf8mRLhyLHapKeBkEf/Pdm502nWO fGAxVCD34HzBKLgoY1EYRgzsJrp/6oXQc/7oS+fqyFvIUMdn0KtZBXvlyvrA+MQR6cIG lcVLI4lzSZMD/6MZB6MLF9RhRCnshYnCt3My2l7QXK0K5x2w04vwI8oK9qHj2Rn/zjQB fkQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=vfItA5WB; spf=pass (google.com: domain of 3dqkmxaokcjqyb1f2m8bj94cc492.0ca96bil-aa8jy08.cf4@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3dQKMXAoKCJQyB1F2M8BJ94CC492.0CA96BIL-AA8Jy08.CF4@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id l128sor1758679ybb.112.2019.03.15.12.52.22 for (Google Transport Security); Fri, 15 Mar 2019 12:52:22 -0700 (PDT) Received-SPF: pass (google.com: domain of 3dqkmxaokcjqyb1f2m8bj94cc492.0ca96bil-aa8jy08.cf4@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=vfItA5WB; spf=pass (google.com: domain of 3dqkmxaokcjqyb1f2m8bj94cc492.0ca96bil-aa8jy08.cf4@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3dQKMXAoKCJQyB1F2M8BJ94CC492.0CA96BIL-AA8Jy08.CF4@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=UI7aEl8s0mFedqqMgOc8iwA/qQRORzYcgfY9MOX1Q3Q=; b=vfItA5WBR9mxsOR5v/mXd6WRiw4qlJltvNcK03CJ3M5tD9oVwrnLXYPI73iFuFVvAy bStP8xOii4yXjBbLTiAyKSB+txWVCS5HbLg7oCB6RFMjQ5I07jr4SiImmyWLTfMKN0Vo z36zX4CJInXJMuVWsluFJtX4mg9tVYzK2laFJNn9axSKJXusl77n+y3QdI2KYR44uRZK TdwpdeFyx3tJBo/3IPC6BPg3PY4+1i133Q8TRIUuSaS8J+5QIn7rjJkfF42EQR9AUQXB a+dyvkdV6VlmT38t3+1yugNVaOElo8rNqqI8UQ90j7irslaNCh2z5PcCU9Uzw8Cc9GWC No2Q== X-Google-Smtp-Source: APXvYqxeRzK18KUJ10+PDA+W93JZa2qDw/GudrGBEMPcLUXJuZN92dXCZ+z04uJTKknTff4jbLvWVF1Z13ZfBUn3 X-Received: by 2002:a5b:44e:: with SMTP id s14mr2709444ybp.100.1552679541907; Fri, 15 Mar 2019 12:52:21 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:36 +0100 In-Reply-To: Message-Id: <0e1bd7fbde338061ea54234b3b1bd5ab6102381e.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 12/14] bpf, arm64: untag user pointers in stack_map_get_build_id_offset From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. stack_map_get_build_id_offset() uses provided user pointers for vma lookups, which can only by done with untagged pointers. Untag the user pointer in this function for doing the lookup and calculating the offset, but save as is into the bpf_stack_build_id struct. Signed-off-by: Andrey Konovalov --- kernel/bpf/stackmap.c | 6 ++++-- p | 45 ------------------------------------------- 2 files changed, 4 insertions(+), 47 deletions(-) delete mode 100644 p diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c index 950ab2f28922..bb89341d3faf 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -320,7 +320,9 @@ static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, } for (i = 0; i < trace_nr; i++) { - vma = find_vma(current->mm, ips[i]); + u64 untagged_ip = untagged_addr(ips[i]); + + vma = find_vma(current->mm, untagged_ip); if (!vma || stack_map_get_build_id(vma, id_offs[i].build_id)) { /* per entry fall back to ips */ id_offs[i].status = BPF_STACK_BUILD_ID_IP; @@ -328,7 +330,7 @@ static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, memset(id_offs[i].build_id, 0, BPF_BUILD_ID_SIZE); continue; } - id_offs[i].offset = (vma->vm_pgoff << PAGE_SHIFT) + ips[i] + id_offs[i].offset = (vma->vm_pgoff << PAGE_SHIFT) + untagged_ip - vma->vm_start; id_offs[i].status = BPF_STACK_BUILD_ID_VALID; } diff --git a/p b/p deleted file mode 100644 index 9d6fa5386e55..000000000000 --- a/p +++ /dev/null @@ -1,45 +0,0 @@ -commit 1fa6fadf644859e8a6a8ecce258444b49be8c7ee -Author: Andrey Konovalov -Date: Mon Mar 4 17:20:32 2019 +0100 - - kasan: fix coccinelle warnings in kasan_p*_table - - kasan_p4d_table, kasan_pmd_table and kasan_pud_table are declared as - returning bool, but return 0 instead of false, which produces a coccinelle - warning. Fix it. - - Fixes: 0207df4fa1a8 ("kernel/memremap, kasan: make ZONE_DEVICE with work with KASAN") - Reported-by: kbuild test robot - Signed-off-by: Andrey Konovalov - -diff --git a/mm/kasan/init.c b/mm/kasan/init.c -index 45a1b5e38e1e..fcaa1ca03175 100644 ---- a/mm/kasan/init.c -+++ b/mm/kasan/init.c -@@ -42,7 +42,7 @@ static inline bool kasan_p4d_table(pgd_t pgd) - #else - static inline bool kasan_p4d_table(pgd_t pgd) - { -- return 0; -+ return false; - } - #endif - #if CONFIG_PGTABLE_LEVELS > 3 -@@ -54,7 +54,7 @@ static inline bool kasan_pud_table(p4d_t p4d) - #else - static inline bool kasan_pud_table(p4d_t p4d) - { -- return 0; -+ return false; - } - #endif - #if CONFIG_PGTABLE_LEVELS > 2 -@@ -66,7 +66,7 @@ static inline bool kasan_pmd_table(pud_t pud) - #else - static inline bool kasan_pmd_table(pud_t pud) - { -- return 0; -+ return false; - } - #endif - pte_t kasan_early_shadow_pte[PTRS_PER_PTE] __page_aligned_bss; From patchwork Fri Mar 15 19:51:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855513 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 30CBC15AC for ; Fri, 15 Mar 2019 19:52:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1ABF92AC54 for ; Fri, 15 Mar 2019 19:52:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0D4BF2AC57; Fri, 15 Mar 2019 19:52:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B7582AC54 for ; Fri, 15 Mar 2019 19:52:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 71E546B02BF; Fri, 15 Mar 2019 15:52:26 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 6CDD16B02C0; Fri, 15 Mar 2019 15:52:26 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E5606B02C1; Fri, 15 Mar 2019 15:52:26 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-yw1-f71.google.com (mail-yw1-f71.google.com [209.85.161.71]) by kanga.kvack.org (Postfix) with ESMTP id 386B36B02BF for ; Fri, 15 Mar 2019 15:52:26 -0400 (EDT) Received: by mail-yw1-f71.google.com with SMTP id v123so13111721ywf.16 for ; Fri, 15 Mar 2019 12:52:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=sAfWvHiPwt89rwowuJd122MWpb2hIcncHtjST15rjKY=; b=NbtB3T0/3t97vdrygB89AoZUjRj2MQ4tWNwtpMTVBXY7kvmWlybCvYfIz7QOwIktbT z9D5CyJZVg2pqLQr3WDE49WO18dRyp1AIizRyu6TG8/2ZNkYgGWMXVfvbjRLWCyubweR fYHp/yxWGpmI5xIWBPy7kS2e3Xnu5NtxttXqFWdIL42taMe7EjnINyNUdtGJwW5q7RbX 8BHM/KoS3/eGXn/weFi4NqKyQ0ldqMXKUxZw3V/H1P21pbK76px6l6UwqptFen1KzBJ2 VFMBJxVaiga6WQqyBuAPT1XoSX/BeDmSI9FRD9b15W5DGUnq9G/vJrmRumKioSIMe4GZ EPCQ== X-Gm-Message-State: APjAAAXZYnoFucE6ZKhJojXn9o/QAkuCrcUs6LgCQoHuhQozBwQqi+ir 4zlldcX7OLq/uQ0gHUl+OsG6VGWSq+zkVpbjOBWYxe4MP8fcEc2dyJwMdqVyG6BS8C+Bt2k6wtH zXI3IGF7VOR536Aa2QT9Ts7/cBqHpx4m43mI5vTh4mg18qpGM+sSaP94Ww2Pm3qqyFA== X-Received: by 2002:a25:7582:: with SMTP id q124mr4788920ybc.136.1552679546008; Fri, 15 Mar 2019 12:52:26 -0700 (PDT) X-Received: by 2002:a25:7582:: with SMTP id q124mr4788874ybc.136.1552679545187; Fri, 15 Mar 2019 12:52:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679545; cv=none; d=google.com; s=arc-20160816; b=CvEa13fq/69vsoapHo3gl6Zr+VjmFx3ndJupJdSIGfrw4QBF0eb7MjSwAhdA3k8Sfc 9achUukg6w/1HQEtU0kqxgcUNmeFeq32qvhcdZHXp0wva7CE6gn9Nua4HJ1mTTXOVRvV SCQCRDGM2xMvADdNojXqLZzuE98D6aGPziH58rrYHEKds465rMUx1OrOVlpsRhxlEwHY dyAha3cVkvxfbABR6pDJRXfcNAaCdMT+m+3vUDA+4pb0/ILb2lo6i0srx8XKbvjCEFky VD/M4pkIBzv2yoOR++EVdLBB88bYKm5vVNfWnB534++sshraOX81TNVGAIGI+a4nI8rH t1ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=sAfWvHiPwt89rwowuJd122MWpb2hIcncHtjST15rjKY=; b=yS/GyqZO8gOQatx4GMXq39w6K7Av4MlZ85DXhHPGCB46IA6AcYsmEFT1C3TZtVsf8F kEZvKp7CkbdJbw3U2212dQFvF9utOEuIk427oEmau6gCsObeDgAe35p+szSHCjErHdE9 Q7ft7wIt+k5krYKul8pyX3nSGcEj7v4HKHsv0NeUe+d8UQMnhXcyu5a9meVSF97YLh/t 3e1+QkZHAog95bDl9EWCRi7N9+XZZnV+lQcNZp885jL/jn/dzVg5JMOWOPv3L85/t0y5 i7ey+FiXHHudvt58jD50DknYvmBURk+9ChCZtahM3KEkli+XPA40o05LTiVcEnsUcYnK V/Wg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=m8TjLlxT; spf=pass (google.com: domain of 3eakmxaokcjc1e4i5pbemc7ff7c5.3fdc9elo-ddbm13b.fi7@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3eAKMXAoKCJc1E4I5PBEMC7FF7C5.3FDC9ELO-DDBM13B.FI7@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id i9sor1679568yba.142.2019.03.15.12.52.25 for (Google Transport Security); Fri, 15 Mar 2019 12:52:25 -0700 (PDT) Received-SPF: pass (google.com: domain of 3eakmxaokcjc1e4i5pbemc7ff7c5.3fdc9elo-ddbm13b.fi7@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=m8TjLlxT; spf=pass (google.com: domain of 3eakmxaokcjc1e4i5pbemc7ff7c5.3fdc9elo-ddbm13b.fi7@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3eAKMXAoKCJc1E4I5PBEMC7FF7C5.3FDC9ELO-DDBM13B.FI7@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=sAfWvHiPwt89rwowuJd122MWpb2hIcncHtjST15rjKY=; b=m8TjLlxTJg+rOoEWUReYdn8rdh11EMoghrFHbVAb9WAMjVa0U/T9FqdGOvqwTZpUfm vVbcFLqWrP3TVwdj34DrYszJNIoQ9EJXeAXrC/wvs/z5IYKQAqYP9RwBD+8emDJu5PVP Vo+huuqc6PHspT4+rXUR6NPieF9KLiWfhrJ7gi13d3MatbDKM4RF0bkO2DrrarQnmyYR 3h3NjRcSXCNOJ75ka4ui6zatbnk/g1PfEFqJlZRnqOTJFOnY1jqqoDx3fG9sQrGexBtX ZZ96/DuknTpKXEYqtVY62yQBCWP1T+ifr5PT3FJRXj7RVMG+M4Fgps93zJ4tkNbNYwin RjCQ== X-Google-Smtp-Source: APXvYqx6fJ/Xf2Wycfnq24ZgFIr73HZ4gPKerA6ul2fF+VVXr0NweKm2RI8g9OR3XNR3hwcUmUxVL0qXK1MAydWo X-Received: by 2002:a25:41c2:: with SMTP id o185mr2528725yba.96.1552679544923; Fri, 15 Mar 2019 12:52:24 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:37 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 13/14] arm64: update Documentation/arm64/tagged-pointers.txt From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. Document the ABI changes in Documentation/arm64/tagged-pointers.txt. Signed-off-by: Andrey Konovalov --- Documentation/arm64/tagged-pointers.txt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt index a25a99e82bb1..07fdddeacad0 100644 --- a/Documentation/arm64/tagged-pointers.txt +++ b/Documentation/arm64/tagged-pointers.txt @@ -17,13 +17,15 @@ this byte for application use. Passing tagged addresses to the kernel -------------------------------------- -All interpretation of userspace memory addresses by the kernel assumes -an address tag of 0x00. +The kernel supports tags in pointer arguments (including pointers in +structures) of syscalls, however such pointers must point to memory ranges +obtained by anonymous mmap() or brk(). -This includes, but is not limited to, addresses found in: +The kernel supports tags in user fault addresses. However the fault_address +field in the sigcontext struct will contain an untagged address. - - pointer arguments to system calls, including pointers in structures - passed to system calls, +All other interpretations of userspace memory addresses by the kernel +assume an address tag of 0x00, in particular: - the stack pointer (sp), e.g. when interpreting it to deliver a signal, @@ -33,11 +35,7 @@ This includes, but is not limited to, addresses found in: Using non-zero address tags in any of these locations may result in an error code being returned, a (fatal) signal being raised, or other modes -of failure. - -For these reasons, passing non-zero address tags to the kernel via -system calls is forbidden, and using a non-zero address tag for sp is -strongly discouraged. +of failure. Using a non-zero address tag for sp is strongly discouraged. Programs maintaining a frame pointer and frame records that use non-zero address tags may suffer impaired or inaccurate debug and profiling From patchwork Fri Mar 15 19:51:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10855517 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DADF615AC for ; Fri, 15 Mar 2019 19:52:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C219A2AC54 for ; Fri, 15 Mar 2019 19:52:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B57832AC57; Fri, 15 Mar 2019 19:52:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1F59F2AC54 for ; Fri, 15 Mar 2019 19:52:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D60CD6B02C0; Fri, 15 Mar 2019 15:52:29 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D140A6B02C2; Fri, 15 Mar 2019 15:52:29 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B8C9A6B02C3; Fri, 15 Mar 2019 15:52:29 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-yw1-f69.google.com (mail-yw1-f69.google.com [209.85.161.69]) by kanga.kvack.org (Postfix) with ESMTP id 8E5356B02C0 for ; Fri, 15 Mar 2019 15:52:29 -0400 (EDT) Received: by mail-yw1-f69.google.com with SMTP id g140so11441662ywb.12 for ; Fri, 15 Mar 2019 12:52:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:date:in-reply-to:message-id :mime-version:references:subject:from:to:cc; bh=eZ7BHJXyN3220x7rl2oUpgQUqTcJDNuGZqyhRO+ZCi8=; b=aQKvXj/9BVpkNNRPl2EZzFKL6WJmHMbue63nX2o6ITvWGt36LP/d7W1ceDtl1UzX9F WJWKLVH3/ONX9o3ykuvoJWM/teq+kzu5pazmAy4sOWbJHI5eefb+C9+PiEX6pun2Vzrm U7JQOnBO81R5UgmtQih/QOAXCfp4oXL7S7IcpX3T/jzgI6GW28mSktyzPrmQqYcv1kcr lqlVpsohxwl+U2XNN5fkEOXYQjMnenrFPPxOQ09fUiqpcr4IqxGF2aA7FSG+jA3YSfp3 4OcSdaBPPOkworTg8QID8mN3yoNNHVwoXoiyvyS0e6bNoVhfhcH70QYhjQR8zOLCiUn8 OwLA== X-Gm-Message-State: APjAAAV8f8BsENYGJzYJNJwZezhAMG5UGI99LXU6zR2RBJLlutfN5pYz 4oeRF6XVZVB0hskhlbTVoAOhNNKau2VfkF92VLFyQIrsZaYDbnJS55OqKiyyazyXN+yH8hABd5A cEzSgwgiAVPEbTZn3hkqkcbghtNVM8x5bVn1O6m7k4tO0y+6ljY3yE2UD/mCPO7hJTw== X-Received: by 2002:a81:81c4:: with SMTP id r187mr4379853ywf.403.1552679549342; Fri, 15 Mar 2019 12:52:29 -0700 (PDT) X-Received: by 2002:a81:81c4:: with SMTP id r187mr4379798ywf.403.1552679548367; Fri, 15 Mar 2019 12:52:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552679548; cv=none; d=google.com; s=arc-20160816; b=oSsuQXsdZEwSdKeHMPksa5KURBOLoLzBnmJR2m+dpSAScGY2/C8T2RSmOR5dHY1ZMp KrV4+nIODQ4rbj/xsd7jdWUdTTeysV4eK7/0bCMwWogY2XfR/5eIrIa05Gl7utJRajFQ yKnn/KQqTG5OASBjq30arR+8IsfsTpVSi28XejNjyUWHz9f9T5jTn6xI3BE8VOwHXnJA 9zxyccnf/YNuH+Q+JkZO3ugu5oIMXKP2wK4zyb/fHpOast9EPqwULws6C0Nm9A941EHY E+frg0WBFeEiAFQfNVsdf2xRoNwmESMN9CbefSgN1hd3Jyi7NrzYcWSw/TtxzIHktCL9 Gnbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:dkim-signature; bh=eZ7BHJXyN3220x7rl2oUpgQUqTcJDNuGZqyhRO+ZCi8=; b=dH2nStoB9L2TD2U9EPGikwve2NJNrbkpsiAO8B5iCrnsKaOdIyt+Ui45KCARq7vpm1 hqO7DeqkFJaDzzZLHwtDfSVbRQZmDjl1vuMqddCrZ6GNm7048dTkQNtHb5MU/SRqOXVq CeywsuXjvAV22fw0tB3FeZWrbfhoyG5FTz9CpqwuT6x+ZXJQUg6Zy85TrZnnfd0Q9eUt 7PwnFBL6DujHdXe0lc3NXyGQcN+PzaJDJgMVlxmx24EJMDdi5Nd9ua5Byh89uEakCHoG VPG5TVRfFtAth1DZczpX6ODYlVBXMijZyl2FssAcvJOPaTo2FcS+pD8eXUQzyN7bDmjg cxsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=cM+Q7dAj; spf=pass (google.com: domain of 3fakmxaokcjs5i8m9tfiqgbjjbg9.7jhgdips-hhfq57f.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3fAKMXAoKCJs5I8M9TFIQGBJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73]) by mx.google.com with SMTPS id 205sor533146ywy.218.2019.03.15.12.52.28 for (Google Transport Security); Fri, 15 Mar 2019 12:52:28 -0700 (PDT) Received-SPF: pass (google.com: domain of 3fakmxaokcjs5i8m9tfiqgbjjbg9.7jhgdips-hhfq57f.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) client-ip=209.85.220.73; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=cM+Q7dAj; spf=pass (google.com: domain of 3fakmxaokcjs5i8m9tfiqgbjjbg9.7jhgdips-hhfq57f.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3fAKMXAoKCJs5I8M9TFIQGBJJBG9.7JHGDIPS-HHFQ57F.JMB@flex--andreyknvl.bounces.google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=eZ7BHJXyN3220x7rl2oUpgQUqTcJDNuGZqyhRO+ZCi8=; b=cM+Q7dAjoclAUX9rjqJjU67fQhDAumMVHtRttx9Zyi+ZIB2DGBobAtyISQHWCe9SMA PZHknNkYe0zmRuTP34LxQfpP1xwZBreBZ0NXH/qnk7oR3nj566n4N1rsgxomhNTEh0Ty SDOfq37fZf5Cao/sGRM/bhdUdzoFls7cguuH3/lWtp/1jJdgVLG8lRoWShZq4z4XO9vT iGHxQ7GSrXCjG8EjxrW3Y9yARtTuqQUdg+mDtAYxXQ4FY7FbCfCGcfBBG46s71wuDA8g bS9aqYheYMuj6UjyFgDP+dwDAvq3VA5uUamhfzLklNEwcMfGzHMrGe5/jZLh7MutPKEK 1ixA== X-Google-Smtp-Source: APXvYqz3F3hQJGqQ71GxABRK7OAGTM1YeC9p7knGv+mSIqj4Is7OoPrLZZdfGBYcCn7qYvsKmLT0kaCoS+EB48D+ X-Received: by 2002:a81:7acf:: with SMTP id v198mr2397024ywc.16.1552679548119; Fri, 15 Mar 2019 12:52:28 -0700 (PDT) Date: Fri, 15 Mar 2019 20:51:38 +0100 In-Reply-To: Message-Id: <8e7bfcb3812ae2a1f558864f56eec71a8f78fa2e.1552679409.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.360.g471c308f928-goog Subject: [PATCH v11 14/14] selftests, arm64: add a selftest for passing tagged pointers to kernel From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Kevin Brodsky , Szabolcs Nagy , Andrey Konovalov X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This patch is a part of a series that extends arm64 kernel ABI to allow to pass tagged user pointers (with the top byte set to something else other than 0x00) as syscall arguments. This patch adds a simple test, that calls the uname syscall with a tagged user pointer as an argument. Without the kernel accepting tagged user pointers the test fails with EFAULT. Signed-off-by: Andrey Konovalov --- tools/testing/selftests/arm64/.gitignore | 1 + tools/testing/selftests/arm64/Makefile | 11 ++++++++++ .../testing/selftests/arm64/run_tags_test.sh | 12 +++++++++++ tools/testing/selftests/arm64/tags_test.c | 21 +++++++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 tools/testing/selftests/arm64/.gitignore create mode 100644 tools/testing/selftests/arm64/Makefile create mode 100755 tools/testing/selftests/arm64/run_tags_test.sh create mode 100644 tools/testing/selftests/arm64/tags_test.c diff --git a/tools/testing/selftests/arm64/.gitignore b/tools/testing/selftests/arm64/.gitignore new file mode 100644 index 000000000000..e8fae8d61ed6 --- /dev/null +++ b/tools/testing/selftests/arm64/.gitignore @@ -0,0 +1 @@ +tags_test diff --git a/tools/testing/selftests/arm64/Makefile b/tools/testing/selftests/arm64/Makefile new file mode 100644 index 000000000000..a61b2e743e99 --- /dev/null +++ b/tools/testing/selftests/arm64/Makefile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 + +# ARCH can be overridden by the user for cross compiling +ARCH ?= $(shell uname -m 2>/dev/null || echo not) + +ifneq (,$(filter $(ARCH),aarch64 arm64)) +TEST_GEN_PROGS := tags_test +TEST_PROGS := run_tags_test.sh +endif + +include ../lib.mk diff --git a/tools/testing/selftests/arm64/run_tags_test.sh b/tools/testing/selftests/arm64/run_tags_test.sh new file mode 100755 index 000000000000..745f11379930 --- /dev/null +++ b/tools/testing/selftests/arm64/run_tags_test.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 + +echo "--------------------" +echo "running tags test" +echo "--------------------" +./tags_test +if [ $? -ne 0 ]; then + echo "[FAIL]" +else + echo "[PASS]" +fi diff --git a/tools/testing/selftests/arm64/tags_test.c b/tools/testing/selftests/arm64/tags_test.c new file mode 100644 index 000000000000..2bd1830a7ebe --- /dev/null +++ b/tools/testing/selftests/arm64/tags_test.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include + +#define SHIFT_TAG(tag) ((uint64_t)(tag) << 56) +#define SET_TAG(ptr, tag) (((uint64_t)(ptr) & ~SHIFT_TAG(0xff)) | \ + SHIFT_TAG(tag)) + +int main(void) +{ + struct utsname *ptr = (struct utsname *)malloc(sizeof(*ptr)); + void *tagged_ptr = (void *)SET_TAG(ptr, 0x42); + int err = uname(tagged_ptr); + + free(ptr); + return err; +}