From patchwork Wed Mar 20 14:51:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861879 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 2B80F14DE for ; Wed, 20 Mar 2019 14:51:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0A04429D82 for ; Wed, 20 Mar 2019 14:51:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F149829CE8; Wed, 20 Mar 2019 14:51:50 +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 916A129D91 for ; Wed, 20 Mar 2019 14:51:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC7AE6B0006; Wed, 20 Mar 2019 10:51:47 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D75306B0007; Wed, 20 Mar 2019 10:51:47 -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 BF1CA6B0008; Wed, 20 Mar 2019 10:51:47 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by kanga.kvack.org (Postfix) with ESMTP id 9781B6B0006 for ; Wed, 20 Mar 2019 10:51:47 -0400 (EDT) Received: by mail-ua1-f70.google.com with SMTP id 32so218631uaf.9 for ; Wed, 20 Mar 2019 07:51:47 -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=20ADMBvUHCnrZbwN97RAJ/EQy38heFRI/sJcSeCbm08=; b=pnybUWcKwbEw3oHflT2bXmhVWy82v5h+OM884E2xPKRUKBMRRtMSFw+hx2MSozfR9c xLVIgYyr+YUoJPGdSQIFzwmWEZtPocrPAgLvB75PwdzvldV/pVDlssH5r76iaUAoHgCL wPWKWxWzgFuonVEJSyJTsEdIDLrNYLscSnhuaPtalzs4KkUTjV3i8HVw9odcPJ32UMKZ E9iVmPIU8qtbCx09PoO8hLmpcgUYbNyLGmDx9zVsV+L+aZL/PQbUY5N5K9lYSimgRdp+ KVF91DXBTxJl5Ot+mKgJGkPN8Ul9SVgP+6IQv9MHB97BSEsEYGmOg/EYaTOGX7N43Zaa Uizw== X-Gm-Message-State: APjAAAUPZ7r4jPrADD7TqaRFe5AlgqH+LdfD4wr7zKa/VXnFMIFOKLyv WbKJXi0lBbBa9TyrspQKiuZy4KiEy7J6KPB+K+aKQoGc74sXwrJb8HIUj/z6Pmf+Fo3zYneyJPk OT+CWN5O7AaerXDPHjxdATeNksqPyOTFACRosE3m73p44cVVcunu2Kxrc1CW/LPVOQQ== X-Received: by 2002:ab0:85e:: with SMTP id b30mr4573890uaf.108.1553093507209; Wed, 20 Mar 2019 07:51:47 -0700 (PDT) X-Received: by 2002:ab0:85e:: with SMTP id b30mr4573857uaf.108.1553093506517; Wed, 20 Mar 2019 07:51:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093506; cv=none; d=google.com; s=arc-20160816; b=ykh3+YcLLqHxjmHLD8kui4LPsSPBRzjvN5sjZdwbAD3f//a7jfRzLKhflps4oLf8Ts mRfoLyJlb7rzuOw7nEwpOyEi8B6Tri/GmdvxzBN+SL0kzoZLvS1QRJ9c2oapcvZ1/Kor KfdwEmzeEGAgA6o/DJ39CcZLzjABy078PEH0m71WnWybhaSABNgX7welRW66w1SLpV5P 6z90JT4MYq7/lU//FOEPjvzRSmuWDl+/kMqVyvOVbbhcuO/m1Biv1Es1K/QJUPnC5oRj e90M5BJsAZUrkcL6tGiBXYtLXjuRmQ1d3nSeBCfqRaRBZXkFxB81rjnqCVyJ8xXEDzVn XQ/Q== 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=20ADMBvUHCnrZbwN97RAJ/EQy38heFRI/sJcSeCbm08=; b=n1BODu2Nwvxq28k9EnLCJk5V1IpF++Hfh7j1Vs01Uxuw362jc5ijma/zCRNX5dxJTU U2+kbfHQgFuUo5hplnfSI00b9iAAmcIF+Or5y3zj7q8wDj5EPBVaaVCN5H6mlMU5g89o 4oa6f+fCAgYMtTuys0ax1dJBK9NpqPIhD3XpRvmEGSpni4e9eeyYXBeVQRLtectAn2F5 vqqBIGOdfYC/FlBT5AAzJ1A5qbqTGTDCzs+tM1e4Poyu9r/zEfDfSh3KTz6mFdJ9Vxbg bvVNbevdif/ZZ+yMsXsyVawIm4vQKupLbOfa5UBA1YDmvPEURSoKx0RQ2m1WHf1MZ2me JWHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fBgfxh9G; spf=pass (google.com: domain of 3glosxaokcf05i8m9tfiqgbjjbg9.7jhgdips-hhfq57f.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3glOSXAoKCF05I8M9TFIQGBJJBG9.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 m3sor1305229vke.0.2019.03.20.07.51.46 for (Google Transport Security); Wed, 20 Mar 2019 07:51:46 -0700 (PDT) Received-SPF: pass (google.com: domain of 3glosxaokcf05i8m9tfiqgbjjbg9.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=fBgfxh9G; spf=pass (google.com: domain of 3glosxaokcf05i8m9tfiqgbjjbg9.7jhgdips-hhfq57f.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3glOSXAoKCF05I8M9TFIQGBJJBG9.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=20ADMBvUHCnrZbwN97RAJ/EQy38heFRI/sJcSeCbm08=; b=fBgfxh9GgamRMHg2ccGZFUoBByz4GOt4sfGHL3tpn3ZQ1767xayTeCcyI3yXs2mSPo 9L9Z+nWnCgS1IkEZKl0L10t99Kxoazx3+kM5cwGHIxLejwB/C6WPwJK7TADmWr+R7zyk SVEtWmrnvfwXlM1zlGyhZQZOBAu3t9jHBJl+/8o9qgFuWwu995t1w8VbhpR252WdIqRb sE8Ml1x7tGBmVRlYQ2buPK+l8HSNYgOfT1+UtDa9CPF/KYM3j84TJNM8Ny+6EFQlptxm +USjsypvXQxVHDirJ+TCg6zJChaLRFAlYddXbqGYhP/AQ/lMXeTl1LdpntucdrWI+Hfw RS9A== X-Google-Smtp-Source: APXvYqwYZ0q0Kqz4Z5cFxviM/RSvP8v992XNq+tHsBzIasT+5NuCnNNfSRat/OKpd5fkXdzMwZGbNS7t4SMgCBo4 X-Received: by 2002:a1f:2a48:: with SMTP id q69mr16477241vkq.7.1553093506075; Wed, 20 Mar 2019 07:51:46 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:15 +0100 In-Reply-To: Message-Id: <7747d94301bcb30de0026e9434a1e1879f84aae7.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 01/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861881 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 35C8114DE for ; Wed, 20 Mar 2019 14:51:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A47829A16 for ; Wed, 20 Mar 2019 14:51:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0387F29D97; Wed, 20 Mar 2019 14: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 BCEFE28FB5 for ; Wed, 20 Mar 2019 14:51:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EFFFB6B0007; Wed, 20 Mar 2019 10:51:51 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EB0FB6B0008; Wed, 20 Mar 2019 10:51:51 -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 D7B566B000A; Wed, 20 Mar 2019 10:51:51 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by kanga.kvack.org (Postfix) with ESMTP id 909BB6B0007 for ; Wed, 20 Mar 2019 10:51:51 -0400 (EDT) Received: by mail-pf1-f198.google.com with SMTP id 14so2748667pfh.10 for ; Wed, 20 Mar 2019 07:51:51 -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=UykDW4hFaDHfzyUH5xSGMBQs4gGYEgUL/nC+SEDYWFU=; b=WB6JKB5qwA65B3lOPXBIEVLUXXUiyQV1CxOdZGOP8lWCUPfkgEo0TrNcXbiUxKpMGa cSLvhK81tAcoxjMGaMLUkZJ1TNkyLjwHXYzukHK7sFy/1Pv38xC5d3eozR8ytfwdz2To NR9bGqzxLYDB+09UPCwcE7VryYIz0oZfV+SL0L4b2GGIJcbT1KaVdiX7jP1rF23c1kBc v8+nrrvV3C13ZZsihVRhe53ALT8TgwXWkclfouczPwJ190rG0HE978xjJZ55buQbyYsW NQEIQSZf0qlMc2acqFaEpaNNghfb27IH9KwjNH3O0LOTAy88L0LUjB5JPbwYwL/GBeqr y2JQ== X-Gm-Message-State: APjAAAVKfLpd530HMLF/SGgGyNy7CR8fkEh/vwNd9KhzZ3QWHvkXsDhh io1MrHnb2hSA2TWz32NliESA3N6tP2fJfpAkSULS0qLQAc5QCJw9zyYE2JWLjSrdUkrGIBfnxt+ oDjfeQkVU6+fs3QOcGg1qD3IqGSBDJs4XjuxpRQpsHgnx1p09JAp+UmeKq54EgFRQzA== X-Received: by 2002:aa7:8150:: with SMTP id d16mr8273794pfn.172.1553093511104; Wed, 20 Mar 2019 07:51:51 -0700 (PDT) X-Received: by 2002:aa7:8150:: with SMTP id d16mr8273718pfn.172.1553093510136; Wed, 20 Mar 2019 07:51:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093510; cv=none; d=google.com; s=arc-20160816; b=cp4Tnu9fM/dHz7qRzbnrKSs24O3oi0+F8eKAL75GtHjDqoVg8Wkhk9flvVpBFUp5q+ QCm4i4EyDqaF1OmATezITYBaQNkSYMQvvWkTXGtxusYLpAYkBgEgXjvTvkNjpJRwrxBi SPVV0uAtNRCI0jxXHWpDwllrDPVlzqNfEypK3QTIdNOV/v5Uy/VSdFWvxCT49+/VcGP5 HVBY/zO5UhmYATWZ+NdIlv3nHLDd7rbFhcpD7AqwrFCaR29Xc4aHi3XKuxQvAbf+1Nts H5oIHxP6WOQT255iFPrDxruCLTP0Y91hfsWxqX4D+ns8m/BXzAqnAmpY2IWRGcXgYOoM Hlgg== 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=UykDW4hFaDHfzyUH5xSGMBQs4gGYEgUL/nC+SEDYWFU=; b=GJSAEwP12M6ObmNuoGGGF7zEd+gRc2SB58HgVd99Tgnxa1Uk08IZv7auwKGkLq4dCh 7flUdCVxfxGAxvPJXCFW9rIzWRTDO/w/C6eTF8UptruJ5eDfjMeiETZUNROvCy6jEqO4 QHb3732mUw4aEU9t/0aMBdNXVqO/u9YkKF1L7AxywpK5axcQJRQriikEGnka5MOKM+2W n6pFqBYYmvFgIxuyV0R0f1+avyrRcjcK3gxBybyD2dbZhZkhCtcWDuoOf9X+PTFpWReW DteCX7I3VPHxOLM0SP9sQYcTUrF6MRi4wr3ExLvHh78LFOtLkbkoQsU8S6d/rYonOGJ7 RcFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=lLOPAVeM; spf=pass (google.com: domain of 3hvosxaokcga8lbpcwiltjemmejc.amkjglsv-kkit8ai.mpe@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3hVOSXAoKCGA8LBPCWILTJEMMEJC.AMKJGLSV-KKIT8AI.MPE@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 q6sor3267946pls.68.2019.03.20.07.51.50 for (Google Transport Security); Wed, 20 Mar 2019 07:51:50 -0700 (PDT) Received-SPF: pass (google.com: domain of 3hvosxaokcga8lbpcwiltjemmejc.amkjglsv-kkit8ai.mpe@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=lLOPAVeM; spf=pass (google.com: domain of 3hvosxaokcga8lbpcwiltjemmejc.amkjglsv-kkit8ai.mpe@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3hVOSXAoKCGA8LBPCWILTJEMMEJC.AMKJGLSV-KKIT8AI.MPE@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=UykDW4hFaDHfzyUH5xSGMBQs4gGYEgUL/nC+SEDYWFU=; b=lLOPAVeMgo+XU+M3v80cbkFtJQeM54XdFXR91eQRqzShgxQoLUxc49Mv6tDL/lyP9d bgM5wXcc+UcWDqcma43kXoRsqCQ4cVo10CfmLWdFsse63XShdwfXmbPVT9elwyshSFqm 3aoRxWR1Uh9L7drItG2unQXmHge3xKzTVpJJ8D8oAphSWdRAjloJPbESFPuGCVO/sDFb 6mVE567BCjCvlZvPSCPLnyB2QjsBIS0qKoYvEoFEyLFeHxmHam4y9QqgGoJxeVmp0dja BPplonkDtACoNdi6bO4xJviq7/EY8LkNxirmV8sgKJVS9NjaOl+5r0KeFLTijrbowQB1 Qk9Q== X-Google-Smtp-Source: APXvYqysrJm0FOsucxhPTIfv5ylb6jXxonLbBq7EGX5VG0V0DdEDjimmAvOMfGLGyepmIvFpwPxTl6UOr//YIIN5 X-Received: by 2002:a17:902:10d:: with SMTP id 13mr3984080plb.50.1553093509499; Wed, 20 Mar 2019 07:51:49 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:16 +0100 In-Reply-To: Message-Id: <786b57d74d3ed58480117a8f67dda1e0839b5ea0.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 02/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861885 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 6A08F14DE for ; Wed, 20 Mar 2019 14:51:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 522F329D9A for ; Wed, 20 Mar 2019 14:51:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 45DC829D98; Wed, 20 Mar 2019 14:51:57 +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 C153229D8D for ; Wed, 20 Mar 2019 14:51:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B27A6B0008; Wed, 20 Mar 2019 10:51:55 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 5381A6B000A; Wed, 20 Mar 2019 10:51:55 -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 428256B000C; Wed, 20 Mar 2019 10:51:55 -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 0AFEF6B0008 for ; Wed, 20 Mar 2019 10:51:55 -0400 (EDT) Received: by mail-pg1-f199.google.com with SMTP id u2so2643842pgi.10 for ; Wed, 20 Mar 2019 07:51:55 -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=k1ksHzqcIFCs0rlhYrsau26vl3ocVueBBoKnHNKxr50=; b=S4SoG1RTlixQSyDfkgBeV6Hc1LM1daV4JUEvhbXD+d/wGzAaxpagyGGAxr8gM5x8IL gVdZKRjQpcmrCamv5o9ohGHhCtiDFJ/Jv1hXKE6MDgEcxlrrmHWTem3VgiTkWYWl3xFw Zn/Ea8y02hFJ0nU7VMP7w8MXiIn0RL18xYT7GN57lYkJre3SlwnLUQwRfPLMOTnjxvsa tSLRnzXEpqF+ragSOoBrga9O+3YvVtfy0CreP29PnW11ZwKguVgisSew2J2wdwJ2xxDK IXfas5VKs/3IpfxwQFbey8u2damaj2fwQi64eoKwxTj/+XodU95HmC+SJDBGmCcthIv+ ia5w== X-Gm-Message-State: APjAAAVAIKImuaQyQhPG7HsAy2GhI02pRNNpJz9xpGNzaI9yKVpxLt2x Nfe4bcDg9XeM6ECUjNG7RNbJFfPHrhhMOQ5p5IBz/0Ow4feRCUYPJsCZUtqBEmr31g58q94Iz1p lo0u0ZytT7PgmmLgi7j4HcjuslNlMZIL3D+EahF3F5ZhFThlEaNdO/7q9MRAREPRRFg== X-Received: by 2002:a62:12c8:: with SMTP id 69mr8188795pfs.184.1553093514553; Wed, 20 Mar 2019 07:51:54 -0700 (PDT) X-Received: by 2002:a62:12c8:: with SMTP id 69mr8188723pfs.184.1553093513583; Wed, 20 Mar 2019 07:51:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093513; cv=none; d=google.com; s=arc-20160816; b=NjgHU5pJFr+Pw+2NRJ0sK2czLBWfPpahTj965ukiMOqlAbXTeo+6xMaf/7fLzRDN5X qhCNMXcGSRlvcxvp2O0d0DN3p2ykgU744NLAnvIZz2HrIHQvDQ24Lxw3I5EZEKM5hAvs NsjDPnWJNQVL1gDyI7dp3GrmjGrr4+vhcHIFNs1kaQSQKhtxjJanDH8GHeNyTTmUkx6H 2wpRI8j42Akm0QxDUSbBCgpBHY6/flK2eUA9gQBGzF8a9HHdsYAyCkMuKt/dhG+ab1PG aQF/gDjXNophMV70wIdmRhvM7lOJ6VWxAvP8nUTzS+Z9Gw8yMyG9k6KrdzW7/dcrJ0YB gvng== 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=k1ksHzqcIFCs0rlhYrsau26vl3ocVueBBoKnHNKxr50=; b=HSYB8kUbRDJn8i4lwksFvzW4KyuZK7JqFaRJ1T0EYNELnVqR0ZVhL221rozd3UkYyd u2QKCKQ7yqb8e1KuPXpAcDNStIATC7Lu/dgLiV2GADifdG7+kHdlnJeeyrYXuTDkadn0 BqDVgvNTOaCLXZXPr6N8eORTSk9dkg0bqwWk2R4aeKaKjyPey3sECtfGpwLlgmqr6Zh6 yf5Ndg9BbeIQUg+QmMbURIUwqcrLqU76U7jsNwLKNVMxUOX0OWK27d7ccBiqw7mF986g UIl+ScT4PzA24Xnm8VNMfBCSX8zcz/de+xuUc83ZStfnKhDxmQ+/ZsiRWLmHVz6QwSHs 6cZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=gbUaG2SU; spf=pass (google.com: domain of 3ifosxaokcgmboesfzlowmhpphmf.dpnmjovy-nnlwbdl.psh@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3iFOSXAoKCGMBOESFZLOWMHPPHMF.DPNMJOVY-NNLWBDL.PSH@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 n14sor2500255pgb.67.2019.03.20.07.51.53 for (Google Transport Security); Wed, 20 Mar 2019 07:51:53 -0700 (PDT) Received-SPF: pass (google.com: domain of 3ifosxaokcgmboesfzlowmhpphmf.dpnmjovy-nnlwbdl.psh@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=gbUaG2SU; spf=pass (google.com: domain of 3ifosxaokcgmboesfzlowmhpphmf.dpnmjovy-nnlwbdl.psh@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3iFOSXAoKCGMBOESFZLOWMHPPHMF.DPNMJOVY-NNLWBDL.PSH@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=k1ksHzqcIFCs0rlhYrsau26vl3ocVueBBoKnHNKxr50=; b=gbUaG2SUmK0LgYPWKNjtqqNqra0Dj2I7PW9z90Jwp3BbFr6Ygh4VDAsBxA5gDOongd +7CxcUNls+IlKo+JGYjfKyQrfYRtO4Z47SxpoLW/8mbPq3NLKcCBVFUfMf1O6lo5lyQS Xjgdf+hI7Y/bA1D0SA8rH8Eu8XxBhdBy5VVMEbbfPWY8xA3Sb5oG0H4SEAubrB034XoX QEsR92P8+ORdJnszt4DIVx7Fa/WP9kGWpGO4+l3UfQFEGOIoLoqxYh83b5fPG2to4T2Y zFPE52PhA9pJC7TqxInYx4207DCj5+fCOTEW3biD/iclPyCXcoUirtevwOL47SHpdgsx zTpA== X-Google-Smtp-Source: APXvYqyDQEPwUnTSsgi/gUBKfoSs2QhRiDzA2VJUjgLM5tdiS/YJBnhxYd/PCUUZbtlvisMRP7lT9bGN6AETareo X-Received: by 2002:a63:2ac2:: with SMTP id q185mr3933097pgq.119.1553093512985; Wed, 20 Mar 2019 07:51:52 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:17 +0100 In-Reply-To: Message-Id: <3faedcd2495a07e13b8611b2c63779d1d6d2b3f0.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 03/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861887 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 2C8BF14DE for ; Wed, 20 Mar 2019 14:52:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0B4B429D83 for ; Wed, 20 Mar 2019 14:52:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F2B9629D9B; Wed, 20 Mar 2019 14: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 2FD2229D98 for ; Wed, 20 Mar 2019 14:52:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A217E6B000A; Wed, 20 Mar 2019 10:51:58 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 9A7496B000C; Wed, 20 Mar 2019 10: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 849476B000D; Wed, 20 Mar 2019 10:51:58 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by kanga.kvack.org (Postfix) with ESMTP id 4F4B26B000A for ; Wed, 20 Mar 2019 10:51:58 -0400 (EDT) Received: by mail-vk1-f199.google.com with SMTP id u9so1057270vke.4 for ; Wed, 20 Mar 2019 07: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=SRoxSUqmsB49A1VVgrFKE/I4A7Rwq9IqNVIi8CfykWo=; b=sB6Nieieba+czVAtJhCh2kKDBtNlnhy4U9ezT7LTQlpYyvjpJPAdKiW+XYMLZtULkp FxmX2sIs4FvmX7GSoyRRTAap+dYvbrChoNpa8p74L8YIPi6bawUy9350875bcrr/iE9Q +FAAXc/lJ3pLtDVwe619VnoXkAnS6CeO3Gjfj1+PYMjIHFDaz8vChzK+n3cyHKc7/X42 OHoDORbMP6EhN33e/Ryn64SbE8fSuWPjXfa2ROTbUWwAY3kqUHUHU/alkU4zB8fgG8mo Mai7VikrDdCipRGXja59xsa9hg6IOBqy5ZovJV7QYTvCaiM2CEazr5GlPWYzfVjE7Fvn QeYg== X-Gm-Message-State: APjAAAVaY6mjRm9YiQ97nAPDXkTpQPe4+5ZjoRMmL6CsLOUViVdUKAbM p/6upUo6S5pH+1ut3QE4RqoEPzB3pQoxoQXg32A8mLyLRcPtOaByVzNv7CYbd47grIwO89c8Wsv jkf8ynoMXR8hjoJVegKvUhjXhbyMkU7aDcc+6R/EVOu9lT7/JJiCYxDRVFhAvfQ0oJg== X-Received: by 2002:a1f:a9c2:: with SMTP id s185mr1652878vke.5.1553093517988; Wed, 20 Mar 2019 07:51:57 -0700 (PDT) X-Received: by 2002:a1f:a9c2:: with SMTP id s185mr1652825vke.5.1553093516706; Wed, 20 Mar 2019 07:51:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093516; cv=none; d=google.com; s=arc-20160816; b=slvWMqm92gj9edqefj5H2OCPSXwfNYGQhlR1TU4DD1UBNvC+TNMmrJ186gKeYxe2YO LuHE+16N2TqHdg0aVkawLg1Alh25AX1oBKaq6bved8Xpp+BzXtBRDrYkuxcKmGf7ylhR gAZAd3rSKf3ZrPFF4qqG3dCOh6+Oeii3zI8bwaB7oI+LEqgJfHlfuZof5YaEMD8iXEpP /ZhqDHvUl0K/lz9+RXayPZsi3wXhp9RIIpUjtJ5xU3IloGt8sdAvZaigp9HZxRkFgXkO FRzygZT+aWFyj+36b3kX+M2p4k5JA7nNUZXNzsArnaE4Us/W3pnZ5Tu4jGUwxxvbXSPr N+pA== 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=SRoxSUqmsB49A1VVgrFKE/I4A7Rwq9IqNVIi8CfykWo=; b=Yy7hseDh/r8sWuEdXNiyA5+w0nmB9QnQKpmvgd5RcuD1nFB4OeWM52OEX2aA6io+h+ uStELUgWv0LcjmNs5t6fLPAsuJlmQlB+iAan4OLqN256HDYmZjvhwe8G6RY1N1AJ4VzC CuWG32PyD4kSVDc9wevymE5BGhGW59OFfFniX6rXTAbApvn4Bouqmb+GAUPt9GDM2yPt l/Lv6pPodrkbgtXtdNNVrbPXbWUs/rIu845JA4qILHfTLuMZ11/zoewBxU8opSsV/3LC 7iinu0cuyDwJchcxiou9Yswsd33fd+p5T7Fl16n2xXW3DREN4W31veMdo+Gw1Wl/noFl PjMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="OyzBlC0/"; spf=pass (google.com: domain of 3jfosxaokcgcfsiwjdpsaqlttlqj.htrqnszc-rrpafhp.twl@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3jFOSXAoKCGcFSIWJdPSaQLTTLQJ.HTRQNSZc-RRPaFHP.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 20sor1205359vkx.1.2019.03.20.07.51.56 for (Google Transport Security); Wed, 20 Mar 2019 07:51:56 -0700 (PDT) Received-SPF: pass (google.com: domain of 3jfosxaokcgcfsiwjdpsaqlttlqj.htrqnszc-rrpafhp.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="OyzBlC0/"; spf=pass (google.com: domain of 3jfosxaokcgcfsiwjdpsaqlttlqj.htrqnszc-rrpafhp.twl@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3jFOSXAoKCGcFSIWJdPSaQLTTLQJ.HTRQNSZc-RRPaFHP.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=SRoxSUqmsB49A1VVgrFKE/I4A7Rwq9IqNVIi8CfykWo=; b=OyzBlC0/uL5vE1MbnBSsgcN7+jbpmXNZtGY60kuBUM0zSFrlGT3CrF5ZT1ZCmJ+hRs B2xng/DpfUZY14vvFMcs+OKuTagQXLSbgUcYCZYD8lCRYocjoE+F6dis/azC0n2LahpR fhCbNmj7Sko0sq6SmJ01y5agfyxEJGwen1uXCSzTgtop3qk/9OMZRX0iJ2jvu1LdnV9D 9KURQrsliO8cca++/6z/5DZO7j5DvF4rmS/X5lt30BPgDAJvqld664x1IsGKsEwB6tZO V65ycbY/8qFjv73eCrvAa8au6tfc73nlS7Q4r5OSfX539V26tciuYc2xjorJhbhq7f9n jsQQ== X-Google-Smtp-Source: APXvYqxfdy/dHa2DPGc+wvB2IhPrhmdfYxxS0txmiW8IW3lGujJxMmYD9YK/VuSuwp5F0i7Xka1GzguCbhEvEnt8 X-Received: by 2002:a1f:9644:: with SMTP id y65mr16461102vkd.23.1553093516273; Wed, 20 Mar 2019 07:51:56 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:18 +0100 In-Reply-To: Message-Id: <44ad2d0c55dbad449edac23ae46d151a04102a1d.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 04/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861891 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 4059713B5 for ; Wed, 20 Mar 2019 14:52:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2B24528620 for ; Wed, 20 Mar 2019 14:52:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1E90E28B9C; Wed, 20 Mar 2019 14: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 9B85D29D86 for ; Wed, 20 Mar 2019 14:52:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB96E6B000C; Wed, 20 Mar 2019 10:52:01 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C1B166B000D; Wed, 20 Mar 2019 10: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 A9B096B000E; Wed, 20 Mar 2019 10:52:01 -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 760936B000C for ; Wed, 20 Mar 2019 10:52:01 -0400 (EDT) Received: by mail-yw1-f69.google.com with SMTP id o66so3438275ywc.3 for ; Wed, 20 Mar 2019 07: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=LfpjTjIWpAUqgBuBr+ROlRDq3TWjVWHbA3wqyLv7Gqg=; b=mf8CnxGYHZ6rxIzNGeTHG/JEO++S0NJ3L9M0xhlIyWHITkh2k/zKwW1/jHzjD/ckKg IKE0f7F24574XOxaiHt4gplmGtyUdsa7GFdGMbct0X2KqWE3ESa05u2vV5Wz0cKRg+T/ 9Lu4eZCQwegI/lmuAok+KdJIldrpB8N5p1G7xtPYYxDsTlKemsYpr6dM1nhkM6M0ow2Z QMqFFXkhra8MqPC8IV8mUS51uctyV3UKoAs2P0C0JKF+U8Upz2pXpimdTd57Ht01pyRq KRRF8UmgDmy68AQFCHxnTBCfYza/Ze2L7gncd2n0o93uSAn5TF5VhHEXXgyS8th+Y8zP Wf8A== X-Gm-Message-State: APjAAAWYf29khlLwVnJgnf8xICv1YDOJE4lRY80Bjj6GFOWOtkUBtKkp oOI70w84/FCN9wwZWXLfD1Zo4lUqe8sX1w0pxPHt/SKXN01FxJ71q0iL2IfEJXyEa6DK62IKkRK RK4zM91ZERHr47zXzdljQ/Fxjqn5xG0rfNhgH4AjCneXzG96KCrR7dK5dCRqbvNDwQw== X-Received: by 2002:a25:e6c7:: with SMTP id d190mr7249589ybh.296.1553093520716; Wed, 20 Mar 2019 07:52:00 -0700 (PDT) X-Received: by 2002:a25:e6c7:: with SMTP id d190mr7249531ybh.296.1553093519944; Wed, 20 Mar 2019 07:51:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093519; cv=none; d=google.com; s=arc-20160816; b=TlWAHAzxPjEYYB2ris03LAN6sRb0sNKZzHcamWZB2ORY1LusfFFV2OcncpB8fUMGi6 Eit+7+v4jfsrhxsQXRJV5lPOcGtvcxq9FfxXvMx33/kcZdCrIjtrxMdWz6wtTwGcuODe thN7+vjr1H8JtaID1HgtVQoy13fqyMHTZ2RIisf9aVLhWsfC8+HtRc1/iwZYpBIzGqfW 6BikNWqLE+sXm1aMyTM+4AAsm3LUGwIEb138xg52DUpfYPM6yiCyNYAf56erTBf42J00 R+q4eiiZNeTz2+ziSlh+tB4LvoRU+jcFzh5DzKtaiAjdl/ZM8zTtdV5SUxmSmDZIc69w w8Kw== 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=LfpjTjIWpAUqgBuBr+ROlRDq3TWjVWHbA3wqyLv7Gqg=; b=uU0RMtSSp8pwIj3/JuamGLuqCH5pVeKlBUgVIR9XgRSd0kwxOlQPiOo2ZCGUGleCda c6Fmv+97R+Z3ZV1Ol4bVirPDMGDKYpKr53KPmflQFEaNNLgSXUCpF6N64ZhSp5tIwySJ EZkW1pADgR5j2NgXqILfMWU+yww+m61xSchn/2tBdQCv0qVcggVnEHNzqeIbPifr7goC vCCoakqEBQO4vF9z2PUYobqya4XteoCkzdIvLAn1n3pwKKKpalSkMknSDDjtUtjM4d9m GMeI5P01eP2gE0FISaiR1rpM9Hpeujj3vuZ/qK/OfKAF5aYpHjq3w+OgqwUk9BA2KYIY 2CMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=aEInHw6B; spf=pass (google.com: domain of 3j1osxaokcgoivlzmgsvdtowwotm.kwutqvcf-uusdiks.wzo@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3j1OSXAoKCGoIVLZMgSVdTOWWOTM.KWUTQVcf-UUSdIKS.WZO@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 g6sor716849ywa.26.2019.03.20.07.51.59 for (Google Transport Security); Wed, 20 Mar 2019 07:51:59 -0700 (PDT) Received-SPF: pass (google.com: domain of 3j1osxaokcgoivlzmgsvdtowwotm.kwutqvcf-uusdiks.wzo@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=aEInHw6B; spf=pass (google.com: domain of 3j1osxaokcgoivlzmgsvdtowwotm.kwutqvcf-uusdiks.wzo@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3j1OSXAoKCGoIVLZMgSVdTOWWOTM.KWUTQVcf-UUSdIKS.WZO@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=LfpjTjIWpAUqgBuBr+ROlRDq3TWjVWHbA3wqyLv7Gqg=; b=aEInHw6BmCYYrnLC9PZfamaP8mF0QEG6bCjPXX9eR1nz2FAxuz8AakcoBGofdWpDDO ecVj+WVvAcyIM/4jHbYKbWN9FEhIYhxx/aKOkZgY6J++xI42I0q0BxFc8HG1MgmsuX4p FgBukYgteSls5KRVIf9LdhyXrtbiuThjGHXpsr95ebbSY1J3++E89dF2htIPvvI1/DzR SYS+4UXKzfCBY88MgyuqrkPh/UK28DK8ANz0pzTScNriptvjxadnhKInYAl8KyI7hS2W ag76Sj+PtN/agIm/Cl1LRWjUtui4zCqqh5CFVGbEGTMZA2YuLM4VLbRUKwjvD9UBYhzt x9aQ== X-Google-Smtp-Source: APXvYqxWvfeu7/LSMKKYKhkYxK38R+2YVgnBYPzEJZ3bjv+W/V6SCf9AmAnMy/L0N0KnMLwcoOG80tlOQ6HUd2Ol X-Received: by 2002:a81:994d:: with SMTP id q74mr2209556ywg.18.1553093519515; Wed, 20 Mar 2019 07:51:59 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:19 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 05/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861893 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 42CCC14DE for ; Wed, 20 Mar 2019 14:52:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2898B28DAF for ; Wed, 20 Mar 2019 14:52:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1C38C28FB5; Wed, 20 Mar 2019 14:52:07 +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 A579729D88 for ; Wed, 20 Mar 2019 14:52:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C68096B000D; Wed, 20 Mar 2019 10:52:04 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C15E96B000E; Wed, 20 Mar 2019 10: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 ABECB6B0010; Wed, 20 Mar 2019 10:52:04 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by kanga.kvack.org (Postfix) with ESMTP id 74B046B000D for ; Wed, 20 Mar 2019 10:52:04 -0400 (EDT) Received: by mail-vs1-f71.google.com with SMTP id 2so502839vsf.15 for ; Wed, 20 Mar 2019 07: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=o/tjHBN+YdVOHlZBhUHSY9iDnhLS0V50uWJeHP43be4=; b=VULh+uA/b73eqFRvvUdIOLfHzfGTLZPgpNrMEooT9u9DkfZHxszhkIaFGFVwfGfSpy yYCLcjYK393YfA9dP0C9Cps1a4rp+vk/o1CXmZMMdvIwLBJg3xCX78SQwEnDpuf/xn5/ hNszVgaz53FF/ar9ukTKCEHXtQqWiii93Oi1/0n7pl6XfIpCwtgbzWAYus6tLvlPilk1 ph+S0C9OV7lA+I6q4Z8/0EKnALqpWG4cO3o7y/qw80XXpk1wBwhn1yXulZhL1CZ4D+1c xP/PGqgLR3PcmfJU9TzcbsIIC2hZ/i220x4D1+afX9DqZg419M0Y8ewqjiGz0dw4rTWY TZKA== X-Gm-Message-State: APjAAAWaBHqmVZrWd7siI/A+K98fB/efazseWtdZiaJzN7qSLpdyykEm MdQzldG7SXsyjPvF15s2ldyBHD+SUYtkzA87LHBHdqMSmsT9Nn7MtNEPKsVpTxX56ehng424USU sdqbHbyRKN6li0lu3QAbMnW7+b4GWlpYbOFHk8PUMKUBDYcoNfb9XrXC4rK3abcg22g== X-Received: by 2002:ab0:698c:: with SMTP id t12mr4591101uaq.52.1553093524130; Wed, 20 Mar 2019 07:52:04 -0700 (PDT) X-Received: by 2002:ab0:698c:: with SMTP id t12mr4591047uaq.52.1553093523053; Wed, 20 Mar 2019 07:52:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093523; cv=none; d=google.com; s=arc-20160816; b=UtnuMIx5xV71dCbLAxZU2d8QBV6rRdGHzHJ1km9hpAjGxGHP8Ukxu0KLQ3b6xPZud7 p/eHz+CuPyzkhpvQCw3+0cPg12ttgqL/3UAVOCaGTCq4v0jm8Cy9wwr+OzwvMGgWJDSz NtD0ombXLUSbSQv88B1XmSgsNQ9227v2X0w0WmW7qPKQ/vymsU06yEPO/6h6QPV9U9Th LpjOlgkiScECEI86+dhAlyBW+WsL9K1nrA5y8fTepngB2lLU1gwnWmZgkXu0d9pPeehX qP2EHdxzPkn1+XIzTTWMFBgWq9R9zs0wYKE7rRz/nK+N2WEm5hHIru0qMJmCop16lsb2 ewTQ== 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=o/tjHBN+YdVOHlZBhUHSY9iDnhLS0V50uWJeHP43be4=; b=zP0anV90NSfICeprfN0Enf0BMilKQXX1fH5P5zVOny3/OT3s9WvbAL4pdSrlh4Rll3 4IyNoj7ZljZPpwaLgCSs9krMjmKrq0wsoNbF4Z3HS4vUmPTRfs6X1KGzO3Bap6c2VV45 plbNeFC8gm2viMUZgf4kWlYCxyJXeYwBCKo+UEgqz4kECtcOHyZiXmf52Gns70awgryJ CLu6fGvFn19FQewBWJMbL3mrYMz/BQG9lMXp8fKQ5khcLg58UzxUBC8VuPiykiYE5uIV HkaIDxLJOp98WETwK8kPcUoW+7YY1+PPr6AV63z96j4WkXlrTQMNmHRZkej8ApzmUL0n QaXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=A+JYGhZ3; spf=pass (google.com: domain of 3klosxaokcg0lyocpjvygwrzzrwp.nzxwtyfi-xxvglnv.zcr@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3klOSXAoKCG0LYOcPjVYgWRZZRWP.NZXWTYfi-XXVgLNV.ZcR@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 i14sor1775039vsp.122.2019.03.20.07.52.03 for (Google Transport Security); Wed, 20 Mar 2019 07:52:03 -0700 (PDT) Received-SPF: pass (google.com: domain of 3klosxaokcg0lyocpjvygwrzzrwp.nzxwtyfi-xxvglnv.zcr@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=A+JYGhZ3; spf=pass (google.com: domain of 3klosxaokcg0lyocpjvygwrzzrwp.nzxwtyfi-xxvglnv.zcr@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3klOSXAoKCG0LYOcPjVYgWRZZRWP.NZXWTYfi-XXVgLNV.ZcR@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=o/tjHBN+YdVOHlZBhUHSY9iDnhLS0V50uWJeHP43be4=; b=A+JYGhZ3fQkhscb6lUBmQ1muz6oemHopDmPki/B278rzjZ0dk/UjohSsOxEu8keiCi W5/VXLZ67gUh0RZN3rq5skpPYsUC7oWDq+tl+3khHwdNxCrmhkhxq7w99dcsLgc3Elx7 dmeBy427vSPfFNaJS7DfUhAb/Fwd/EACn2TYRVMksoGnObzxZTWUPnBuSuAiS/JRvPZA f0EsOCj85jPSuENzq/Bg7zakYTOA4bo6fX1BKjPllZeRcF3GtXBJjjiVIF4U6HkOW9id X49/giQrlJvYsmuoQtVxMGCVLZT2pR3apmEVULZaKks3LsI2Ip7Pr6oRl+H4swKOnmZR D5tA== X-Google-Smtp-Source: APXvYqyHOngs34In5uhQcXPzOfQqpf0ARHPrNyLHXpzz5ogONfScZvSMOj1YE9ihREsOQQ2kQeo8TqNX7xzilecW X-Received: by 2002:a67:7651:: with SMTP id r78mr6363022vsc.39.1553093522664; Wed, 20 Mar 2019 07:52:02 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:20 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 06/20] mm, arm64: untag user pointers in get_vaddr_frames 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. get_vaddr_frames uses provided user pointers for vma lookups, which can only by done with untagged pointers. Instead of locating and changing all callers of this function, perform untagging in it. Signed-off-by: Andrey Konovalov --- mm/frame_vector.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/frame_vector.c b/mm/frame_vector.c index c64dca6e27c2..c431ca81dad5 100644 --- a/mm/frame_vector.c +++ b/mm/frame_vector.c @@ -46,6 +46,8 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, if (WARN_ON_ONCE(nr_frames > vec->nr_allocated)) nr_frames = vec->nr_allocated; + start = untagged_addr(start); + down_read(&mm->mmap_sem); locked = 1; vma = find_vma_intersection(mm, start, start + 1); From patchwork Wed Mar 20 14:51:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861897 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 2A4FF13B5 for ; Wed, 20 Mar 2019 14:52:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1038D29D91 for ; Wed, 20 Mar 2019 14:52:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 03A2529D88; Wed, 20 Mar 2019 14:52:10 +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 5A35E29D7E for ; Wed, 20 Mar 2019 14:52:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C48C6B000E; Wed, 20 Mar 2019 10:52:07 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 477096B0010; Wed, 20 Mar 2019 10: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 33CFF6B0266; Wed, 20 Mar 2019 10:52:07 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by kanga.kvack.org (Postfix) with ESMTP id 18AFA6B000E for ; Wed, 20 Mar 2019 10:52:07 -0400 (EDT) Received: by mail-qk1-f200.google.com with SMTP id y64so13387535qka.3 for ; Wed, 20 Mar 2019 07: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=/AfMcWXUpr8qOV9jNlH+KOvJdLIB2O2rWZvj+eGhaHk=; b=qhgmf0RAc6sEnceqG/qc4Eq85OO6sTNnSmqb6jAeMbRVu4T06neOui3Fji5MmFOWP0 Fv2cAFJ236pfrzaLLwVMl7FtXSO3l0tbcK6Yen3z7TBfW3Da5bXW6JBVwDH4ICevzuMD tnbnYkoNRhjBe14Lv81x4Y5MrJU1Xo2zufXMADpdw0snqu8PS9e/Kw7aw9PXsQEw7pQk tRPiu3+9tPszywGnLZxZrabw1oA4Z4BXJJSV+TmfX8Vkvjz8PVrcEINHIGCL5ZWSU6Ai 4u4w7yu9tGIlehdR+WxdKgAZCrsNRFBW8IxnhjDUILqQfLSSjJiDChQC1fCOI9mO0cOM DPLQ== X-Gm-Message-State: APjAAAWu4ZwXEYS5pEhmbCVYOrTsJsCSd9B7IzCXM89qvLob7fVOx3ap 39raM20pC7K6S3NGoQSZgzbBZaPd/s29FOWfJgFcgeojILDMIKVgljhhqA1majiQm6shb66TIQS ylHH2jU9SEgDyv4nlADG//wG+QE3phPIADrfdX8IWiIgytMJV7PrAfYV3vb5ICjA6zQ== X-Received: by 2002:aed:2307:: with SMTP id h7mr7294876qtc.87.1553093526833; Wed, 20 Mar 2019 07:52:06 -0700 (PDT) X-Received: by 2002:aed:2307:: with SMTP id h7mr7294825qtc.87.1553093526213; Wed, 20 Mar 2019 07:52:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093526; cv=none; d=google.com; s=arc-20160816; b=Tc3kxslJ1iTqDAff3SnFfVTicLPjlfjBvneTes8h2WQarwABGdlMnHBNY6Uxkm8FsI DCHUc1kfn6qmpFlWSWNm5JTpbJHqWUZBQgoJmzaXkeC5/YOF6TYEX6d3ULXcCtdbfrqL IC5ffEm6IjwsppdO6ZLt5eoF+jNuYETRE8WT62zokRQ2yGIdtohxeq/F+ILv88he+AmA 7BDzJeCVgQCZwMJMR0PLfXRCblG8v8KUytRTYt//drYWTVbt28QNYEI2Zu6HAmJ7UQhY pfO4al0UH1mjZghqJLI8PkWcZIJ9lnpLsmevTDCz0I/XLIcudqKE98VJ14FYKX6xeiEX N+NQ== 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=/AfMcWXUpr8qOV9jNlH+KOvJdLIB2O2rWZvj+eGhaHk=; b=S5X5wz+sxBEAQy+CmqWVIoIeRAy3jWzzfsP7BIob0KPKF3mb/VCp01ZmPRzMCwfS4I h3/0CgD9986ePfToxtSdl7GhmXT5apIl0kKz3CXwctSUMAfwRUN6JC40MD4+fZz11aMd 8EntRo5wKa6DSRGELq+UhOdZgC2aWPG8rvrfXL6vKZUQLmlfSXBvmWFP/iZyKtZCws1G k0agI5sysSCTZwKngNmkhIqit9n4c4Adxm2f5xgw0H2oaPAvlkVyls3ozFDFjUjhDZVZ ttZ1N+9SIiK1JMLfQhoNuw5fV01oAm4vNM13OxV0mKNxaERbVirfrK9gC9ibgVJ5d/rP F5lQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=DgQCTHAw; spf=pass (google.com: domain of 3lvosxaokchaobrfsmybjzuccuzs.qcazwbil-aayjoqy.cfu@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3lVOSXAoKCHAObRfSmYbjZUccUZS.QcaZWbil-aaYjOQY.cfU@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 34sor3988322qte.45.2019.03.20.07.52.06 for (Google Transport Security); Wed, 20 Mar 2019 07:52:06 -0700 (PDT) Received-SPF: pass (google.com: domain of 3lvosxaokchaobrfsmybjzuccuzs.qcazwbil-aayjoqy.cfu@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=DgQCTHAw; spf=pass (google.com: domain of 3lvosxaokchaobrfsmybjzuccuzs.qcazwbil-aayjoqy.cfu@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3lVOSXAoKCHAObRfSmYbjZUccUZS.QcaZWbil-aaYjOQY.cfU@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=/AfMcWXUpr8qOV9jNlH+KOvJdLIB2O2rWZvj+eGhaHk=; b=DgQCTHAwsx9nOdP43FdX5LVEo87GnIfu0WmZk1NYabcIGCtKnsiekk4mOZRYJIhI1U rvCehvhBc06o8DcFgsseTvDqXb0bAW+gvKfeVD4L0KGfj2wOOOXK/fMnySAD9d5mCKCu 3Xy6ZFurPUHQ7qTNFw0+B5iut5R52YvqgYU/a0JEMSrKC9jRWo3AU420WBXrCWxeTOM5 YeoFqgkUOZ10TFamvrA+SuUuvAxE8e7foqYee5urs8q1dYqDp/xiKxBavemBAmX/sEHw DPuDEUNXQvvEZmE9YUfwESNhCqe00SvlS+lCubr0KgJlNbkXCmKhNkb8zOctNt9/cPVR Rukg== X-Google-Smtp-Source: APXvYqy+ZGj1oA4MFc9JnMXadH7vhqJKC4uAMJ0YAN7IR5yuNOlRtTgk0L4VAoRYkahPatQ5yAXGf8UXWvJkE4CW X-Received: by 2002:ac8:38b7:: with SMTP id f52mr14823448qtc.7.1553093525814; Wed, 20 Mar 2019 07:52:05 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:21 +0100 In-Reply-To: Message-Id: <9f7d95da28b1fd5e601cbe43e81ee646e1ca6880.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 07/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861901 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 31E3D14DE for ; Wed, 20 Mar 2019 14:52:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1CC7A29D9E for ; Wed, 20 Mar 2019 14:52:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B98D29D98; Wed, 20 Mar 2019 14:52:13 +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 7CA5329D88 for ; Wed, 20 Mar 2019 14:52:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 895246B0010; Wed, 20 Mar 2019 10:52:10 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 86DB96B0266; Wed, 20 Mar 2019 10:52:10 -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 734026B0269; Wed, 20 Mar 2019 10:52:10 -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 510866B0010 for ; Wed, 20 Mar 2019 10:52:10 -0400 (EDT) Received: by mail-yw1-f70.google.com with SMTP id a75so3407598ywh.8 for ; Wed, 20 Mar 2019 07: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=MRHHZYm6qbbddi64ikktRuAjn8BoXK8Gf7bv/2tC2r0=; b=H2rGSXnFQ6bWvFXGH/6GWYXX7QJzA8et1n0HlZ4FEIy7Kla5inaA47brnb5bAQhUn6 m/d9mDoh1gF4pD3AIWCOhrG2ZN7QMiKL1gf6b1pmH4XEwgsTIPx3cbkBje1Kt33DZ+uc 3t2NXDipI5iP8kOcv6S2AK85j/py/5ubDEXUMCpfWx5loLKmBE5KsQJQ91nThtM0leDS 0D8uUcPFgnGva6TSeiXLG+vgxzZWeEu7QqhQWUo5JRQRx8iVNIN3pSzUss8r9b+cpoaa dkY1Uz90Y9akT6lBmU/zynG/bm0tBR4odK6GsL6jSwsYFZBli4OrL3lZqzP6PQN9qJJ8 PaKg== X-Gm-Message-State: APjAAAWTZzC0voiO2g6AM3CExGAwJ93TMEG6Pmxy0r/K6iy5EunMddua +mfm/JOVlhqTDdlKP2FyQgP3B3Dv6XTZ63MGAFJkFDiY+rEM7s8G/Vg18LSUAVM6/jdN5tPoArB mQg1sSSq7weLDJkd+o1FWd7Ao7Qm8Mhhf0OXOMm4pcEIRfF0yGuTuBRi+QH8ChVypuw== X-Received: by 2002:a25:1ec3:: with SMTP id e186mr7133498ybe.189.1553093530089; Wed, 20 Mar 2019 07:52:10 -0700 (PDT) X-Received: by 2002:a25:1ec3:: with SMTP id e186mr7133445ybe.189.1553093529382; Wed, 20 Mar 2019 07:52:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093529; cv=none; d=google.com; s=arc-20160816; b=bx2qZs9HqSKnLbQ8cOLaw2xXsShMTlnYmvSCEBd0ecTCerks3VLJXeyyNAQHvbPTiO DcbdXblQo65qcBboYqs/aLb8GFJVnkitjOrwHE+JLDbCmq/baen3sKGxLFh/pf92KUIQ SGtETFozGmIXpCyhpegXvyAuzzdTocNoodC1nlJHqiHAvOoflCpzoZ/+J/qYvtaU1h9m xbkZl+QHbnYfDZshZNelmLAsc32gGIiqRVgmg9cb2ZjG0dattEC+C+MTtxTBayTMC1zl jcHV1LtzdPzYD3+V4KorSHTB/buYvD/jDALujWEkRZ7YEEZ7g5kjiYFrj5BRy4TGso1H zUHg== 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=MRHHZYm6qbbddi64ikktRuAjn8BoXK8Gf7bv/2tC2r0=; b=aOJsRM1SBKV0B36rJMX4Wu2ZdPSDMPmsw/8+R+tBCR13u/G9SMy7nyDTAX9oJm32LV EIzZLL/0erxh44GOBIOyZp/3RAh5MMmXNNcGNjB84bEKY8TS299FCzIopVhU5468efzR XzzrAzAhQfJDo6WPm8eshiKbCvXbj80N6hkUdn34B0KwDg5Jl4TzqiFvNjz5iF33xxmx ErS7D3h/2mi8YryLsmfIxTGOC5M00eBdIpNvfVPdUyuWztJhtZEUJ2SKyt8VZNS1dZjl NTXd8T0oP9gSALNATO0KaCGQ5MH/qGy+dvwShNX96gpo9i4Fx9rqHe8O+bLAOjhy3iUG VBiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=KRMkdxMD; spf=pass (google.com: domain of 3mfosxaokchmreuivpbemcxffxcv.tfdczelo-ddbmrtb.fix@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3mFOSXAoKCHMReUiVpbemcXffXcV.TfdcZelo-ddbmRTb.fiX@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 j125sor761528ywe.8.2019.03.20.07.52.09 for (Google Transport Security); Wed, 20 Mar 2019 07:52:09 -0700 (PDT) Received-SPF: pass (google.com: domain of 3mfosxaokchmreuivpbemcxffxcv.tfdczelo-ddbmrtb.fix@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=KRMkdxMD; spf=pass (google.com: domain of 3mfosxaokchmreuivpbemcxffxcv.tfdczelo-ddbmrtb.fix@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3mFOSXAoKCHMReUiVpbemcXffXcV.TfdcZelo-ddbmRTb.fiX@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=MRHHZYm6qbbddi64ikktRuAjn8BoXK8Gf7bv/2tC2r0=; b=KRMkdxMD5r/ER0b2EYOaeTinlF21JbEs5hD7NF/4KuqBnnQC7/Ye6Qw9DCv6nYaIx6 4U2cUzqhytwW3z5B4iRPFCCYHJA/xIASnuuJbgU+DFTxxvtbMCxk2YOQuO+k3FhjQZxT +HNaP52fISwxZzgGzVRKuYbp7Q8oH3K6BetnL7BXKag5ZZAYsbr0n35Pp3LUj50J49dx O5jbTLSzQ9if52c7p/5fn1S3OpB1gYH1iUyL2wrB6P1nRrgD/9GDVY3gp4qdOHpbJY1p i3H4A9ArVAT2nkBdJ2JerrQkq4TGT69QXIEYb6sDErAg40bUbxmWd7KaeWagNV837y9+ Oy3A== X-Google-Smtp-Source: APXvYqwr9m8YxgeUDBeeozt2hDgx245cPvqj3jehL0crcqpJn0rfr3qEPeO8cHwuraZTKRyiRzSC54VlM7fEpP7b X-Received: by 2002:a81:7acf:: with SMTP id v198mr2201203ywc.16.1553093528977; Wed, 20 Mar 2019 07:52:08 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:22 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 08/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 Wed Mar 20 14:51:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861903 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 0E0C013B5 for ; Wed, 20 Mar 2019 14:52:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E852C28DDA for ; Wed, 20 Mar 2019 14:52:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DAE9729CE8; Wed, 20 Mar 2019 14: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 6F28829D97 for ; Wed, 20 Mar 2019 14:52:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB8CA6B0266; Wed, 20 Mar 2019 10:52:14 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A6CB96B0269; Wed, 20 Mar 2019 10: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 908246B026A; Wed, 20 Mar 2019 10:52:14 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by kanga.kvack.org (Postfix) with ESMTP id 52C746B0266 for ; Wed, 20 Mar 2019 10:52:14 -0400 (EDT) Received: by mail-pg1-f197.google.com with SMTP id y1so2936608pgo.0 for ; Wed, 20 Mar 2019 07: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=JtqBUblhyywi4YhvTkJHhe/ifq9XLr2+qZst5mD5EtU=; b=jo1i7kV/Avnzf3eD7gEwKypwPr+xvGasV6YU4FJqYaC/F8rkMf6Msq3vwj8z5gEkwL Lk0Tdt2jGW0qOtkAPN8+HdH8qAihvRD1YXSYxPk1Kr/fYsi+qZO7C0XudUNeEEY4VYS+ pzKRsg017DKsDR4Nf1ZPLzwr5nb50uct2EJgv3VqXMN7Qfzp9GfQKXfIO9v9jqTFFH+w zvKqfGZ7LMbh33wNmghKfCXYoFMgjZKlzHcDaVqIq0g5YrYKYMh90ezGzJani4JJMur7 A6FDsAAnBmWFaHHfqOdRqNWL5RZeMoq/SCJQ/gWIcrFMiXfDWgE1/GJuBebfah6h+JII yGzw== X-Gm-Message-State: APjAAAWiF4J8Bzx7VJZqP2Zu1l6gbOXxthABpYNjkpkR5hHy1bFJpz2/ 0OFehCJuM3FQFwc4+40T4z4tybOAQ+CXhaqClWwlajTnCKnix+1a4r80OY/pqzLYRTvLJqJCUmu q1p9nb8v6zkzVEU+rGKZcf1DtB/O1gFtEryDe8p0Xc4kAxTsCG6ApacGZ4koY3dFQlw== X-Received: by 2002:a17:902:b687:: with SMTP id c7mr8429396pls.270.1553093533878; Wed, 20 Mar 2019 07:52:13 -0700 (PDT) X-Received: by 2002:a17:902:b687:: with SMTP id c7mr8429322pls.270.1553093532900; Wed, 20 Mar 2019 07:52:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093532; cv=none; d=google.com; s=arc-20160816; b=xQeeHTjapLLkiO/1tVv6O1ANt9JYDLoLQLuSL8xCfTjg3PIsnzVeez8lsS7nrElcS7 +xKPP9381dsnph3evUbHhNRTFknYLaTnbEE9LnHYwGgzGvlXGHXUZFc2ucaKHhH6B9n9 rgHvB8iu2azbnyTHQmjS1mrxfa9gufVFk89aEYxaxNHTMmjd6vWXrWO6f3nEMlGEHs2F mIUBHJYRzb1Pvl8H5G2jnwuRiMIQH1dFyp9e+yksA45XG/JjTJ58M606P5vBo23KC6+j kEbtBPCYHPZPNg8MhShfdHW4EXzk+olIcxVLH1JbugGBs3Inp4ar2yc8IEdig9iqEcbc Pr5g== 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=JtqBUblhyywi4YhvTkJHhe/ifq9XLr2+qZst5mD5EtU=; b=tXGH23f9CXsoNt0uOqO9Awlq4XrnL+EdKdVRWPdCNF5lauzFKqQdiSavHtYX+Oa7ER Xq04/z4ISmOvQchpFKFKPH5skslNybL+vml144Q7FPPv+ksZ7UDXDZ9/hV6H1D6GGTLo enJrgcAdE1zDN8P8w8gJdy80tJ6dhzv7VlcjMGyRTSaI4cllHulIF9oEb7o5e1Tupp7s 4jUtnd5uwrOcEJDfgD5W8HWpb75BSO7Gg393OvenZhAAkrXzjfkZY4gVbnHiPv6tGViq N4afKDfFLpXq322eP9Ei8O1w5D/tN15rYCk1K2XVuS29VEk62UlbqjJbAbRklN9nmcK+ zuUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=JCUhTsom; spf=pass (google.com: domain of 3nfosxaokchcviymztfiqgbjjbgz.xjhgdips-hhfqvxf.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3nFOSXAoKCHcViYmZtfiqgbjjbgZ.Xjhgdips-hhfqVXf.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 d19sor2556767pgh.19.2019.03.20.07.52.12 for (Google Transport Security); Wed, 20 Mar 2019 07:52:12 -0700 (PDT) Received-SPF: pass (google.com: domain of 3nfosxaokchcviymztfiqgbjjbgz.xjhgdips-hhfqvxf.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=JCUhTsom; spf=pass (google.com: domain of 3nfosxaokchcviymztfiqgbjjbgz.xjhgdips-hhfqvxf.jmb@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3nFOSXAoKCHcViYmZtfiqgbjjbgZ.Xjhgdips-hhfqVXf.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=JtqBUblhyywi4YhvTkJHhe/ifq9XLr2+qZst5mD5EtU=; b=JCUhTsom3sv4Qp9BgYwbkXDdkciE1//Hw4N0DNNMC4xTTSQ4lLZpC9fonlZAwhGa5s GNZfPO7WKhbqfkLhUEXh2Q2IsqhkYYT63boD5rJQKFDull6EmJ/3UNaGEyGsIksVaOC8 tVa6dAYXJVSE0a/Y3iEyW9RkRqD5ULEHrrYNKdC8hIFFIscPITax04Ehb6yZo3/Kv5gE 4GrdjKthKOiZlqCKJ11zuUzlpowQXS31kWI1psH6mvXWAsMM/BUWqqUj3E1L86ZSFVnv UTo+HsA5H9AlfhMDC0xK9OSBVfCenoUTzBKRmg/WwAJv8lBEwyEQzOI3ORQRTNGew37R fDYw== X-Google-Smtp-Source: APXvYqxTeQTCrSfKvGumpNCKTbPirWsdeFkFdjLvtHz5QB/GJ2l6iQCjaYJVOq8eYP8TPKdTa2JL6S1R/puOA8Yr X-Received: by 2002:a63:1e10:: with SMTP id e16mr1614319pge.103.1553093532279; Wed, 20 Mar 2019 07:52:12 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:23 +0100 In-Reply-To: Message-Id: <2280b62096ce1fa5c9e9429d18f08f82f4be1b0b.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 09/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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..855a1f68c1ea 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1761,6 +1761,8 @@ static int tcp_zerocopy_receive(struct sock *sk, if (address & (PAGE_SIZE - 1) || address != zc->address) return -EINVAL; + address = untagged_addr(address); + if (sk->sk_state == TCP_LISTEN) return -ENOTCONN; From patchwork Wed Mar 20 14:51:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10861909 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 8425B13B5 for ; Wed, 20 Mar 2019 14:52:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7049629D83 for ; Wed, 20 Mar 2019 14:52:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6DE7E29D86; Wed, 20 Mar 2019 14: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 B0B1729D84 for ; Wed, 20 Mar 2019 14:52:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75C6F6B0269; Wed, 20 Mar 2019 10:52:19 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 70C566B026A; Wed, 20 Mar 2019 10:52:19 -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 5D5796B026B; Wed, 20 Mar 2019 10:52:19 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by kanga.kvack.org (Postfix) with ESMTP id 1D32A6B0269 for ; Wed, 20 Mar 2019 10:52:19 -0400 (EDT) Received: by mail-pg1-f200.google.com with SMTP id 73so2895012pga.18 for ; Wed, 20 Mar 2019 07: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=MbZWy7wAoKF2UH6KYiAHojRGCKZALRbT18PDS+70hHM=; b=o4uJMTyrXdjmRI+DUXDPy4Lfq5DXVEsRGj4rk5KX7u5uCrcEzh++cHNhkTmoLlvz4i 63pnm2yenQXr3bi1QsJU8l+EMv3c/P++dt57693OGQBrdtTIAQo3Uvp+1NATmJyMacAx ZEdJvdCpxqxT67Kl3VpfrqUam5dMbaen6H8BfF7hr6ds7vrk1j3mGYUNd3rE605TkvBb Hdpz3IwpACjxQn7+2T/gVdpKz31a3WfSDHScn+IXEu2eio8RLMG76Eqk+BHa7zUONAMu dntHuXrXSahWYbsB2Ly4M3FcmGiCDKjSl5K11tpDIDKTazEBehGc8Bez7GN1mmmNc7zj fp0A== X-Gm-Message-State: APjAAAWnIYMXOx96JOdCOmj/al3tzVzXGHKvv5sHsW0BUKX08o1qLVxn x36NprgbdCPEMHlmnGvK6GR138ZaCa1dnDGHTqd1rx6flepL/EdaHM9IJiJDWojfp/PlFyKNusy pMoBzF39YndWSiYmnte68toWWaikd7lvwo7EH34kCURJg2uGxa2jMmEGShiShevr5wA== X-Received: by 2002:a17:902:f089:: with SMTP id go9mr8628612plb.335.1553093538626; Wed, 20 Mar 2019 07:52:18 -0700 (PDT) X-Received: by 2002:a17:902:f089:: with SMTP id go9mr8628512plb.335.1553093537363; Wed, 20 Mar 2019 07:52:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093537; cv=none; d=google.com; s=arc-20160816; b=N8tP7LE/bvSPDKmTGFBMS9Fx2T7uTHXvgckdrFGAl/Bz56qvGEwPSlhLluDoSAFyzL a98x+Il9g8VldVKz9fCMlo081gaWmyY5PgPs8aCEnqyBCMADVYZbon6AvZ6zgM3dRfhF j0Li/PnU8pkTLhU98BWCviZn420pgiWQKeLL4B2bEss1W2+SNRmTGBNSoMAaJniUWOHw 5sQJ2JgWSC+XsoBT1Zprwamt3onfDe9OgYMdpOcD4tiZXJtciBbtDT8j1421aQu6wPzm noJnhBjWpwOLT0iYCjn3Q1lU5XTtr8NMpWRHvLC7vndllWDEieJgz697ftviJzzqxuQe hRXQ== 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=MbZWy7wAoKF2UH6KYiAHojRGCKZALRbT18PDS+70hHM=; b=KyMVaof4Mfu7g/6JByWaYnmDVgBiOSRJx8D2+LI1qjTxjqmdiDPLIHmy5jxxVNaoDg JTJxWz1yaqlBtzH/6lnnmyXfM0QgYqOAaogyX9IQMY5IAlFGHCi/AsuYfYD9Y1+mnuhr d/xhap7bXltKvYl5LB5C/FUT52b61eOQPAzXTUIPxDvclom2oLNw/LDAJBj1jBC+5tRf QEfILPEWYDRsASTFh63tJT7pB5HQ+RXEg8qnMpxFFXFpkXAk4bjMXHo+Ccf1+eRyaYfj 3H/d1QJRrJxhiPI1wrJZ41aRUDMZ0NvD0g1YNUsrMvsFRtoqBbZbVvr5B+eWw/vFxwkR KLkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Cf79xB1h; spf=pass (google.com: domain of 3ofosxaokchszmcqdxjmukfnnfkd.bnlkhmtw-lljuzbj.nqf@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3oFOSXAoKCHsZmcqdxjmukfnnfkd.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 31sor3283796plz.49.2019.03.20.07.52.17 for (Google Transport Security); Wed, 20 Mar 2019 07:52:17 -0700 (PDT) Received-SPF: pass (google.com: domain of 3ofosxaokchszmcqdxjmukfnnfkd.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=Cf79xB1h; spf=pass (google.com: domain of 3ofosxaokchszmcqdxjmukfnnfkd.bnlkhmtw-lljuzbj.nqf@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3oFOSXAoKCHsZmcqdxjmukfnnfkd.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=MbZWy7wAoKF2UH6KYiAHojRGCKZALRbT18PDS+70hHM=; b=Cf79xB1hEehdzh5EdQvB0DqUp1Hi1Ba1ZG4ykqAk40DB3x+eMaWrm7sWIWkJNEquhF FVl7gQufjFvFNgmRChNl29sEoSXbZbjX50ZfmHbUgFVy9BBOQ2P3XPdFp0ynrrY/k/AF 9Fd3AuSLRwBOeiZN2kGSzlynrJ1LxfGiyFJDOhBAZfJzEpG1mNR/DpTDh/D1EJ1W8GgH +Vi7IZFmuQSS2kMFc24VaCjHt3uoL+I60vu4Q4CcdKyTLJqv4dM27wQE05rs7AvBrWNo 08k+krkdHzvBR07nst5bOr1EUNXB/0pbWIkNdS5RSvc7RMdINRBsuOOZ4LD8cqB0GLIB KXBA== X-Google-Smtp-Source: APXvYqxkHmitS8lxUpT4EOuZJCwERqSRPkPPirufF7mQse0PfJCN+CPgkz0bcAlc7DH+nCKwSTfgmoSYbxlj2eug X-Received: by 2002:a17:902:f30e:: with SMTP id gb14mr3654364plb.16.1553093536799; Wed, 20 Mar 2019 07:52:16 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:24 +0100 In-Reply-To: Message-Id: <76f96eb9162b3a7fa5949d71af38bf8fdf6924c4.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 10/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 and do some pointer comparisons to perform validation, which can only by done with untagged pointers. Untag user pointers in these functions for vma lookup and validity checks. Signed-off-by: Andrey Konovalov --- kernel/sys.c | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/kernel/sys.c b/kernel/sys.c index 12df0e5434b8..fe26ccf3c9e6 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1885,11 +1885,12 @@ static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd) * WARNING: we don't require any capability here so be very careful * in what is allowed for modification from userspace. */ -static int validate_prctl_map(struct prctl_mm_map *prctl_map) +static int validate_prctl_map(struct prctl_mm_map *tagged_prctl_map) { unsigned long mmap_max_addr = TASK_SIZE; struct mm_struct *mm = current->mm; int error = -EINVAL, i; + struct prctl_mm_map prctl_map; static const unsigned char offsets[] = { offsetof(struct prctl_mm_map, start_code), @@ -1905,12 +1906,25 @@ static int validate_prctl_map(struct prctl_mm_map *prctl_map) offsetof(struct prctl_mm_map, env_end), }; + memcpy(&prctl_map, tagged_prctl_map, sizeof(prctl_map)); + 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); + /* * Make sure the members are not somewhere outside * of allowed address space. */ for (i = 0; i < ARRAY_SIZE(offsets); i++) { - u64 val = *(u64 *)((char *)prctl_map + offsets[i]); + u64 val = *(u64 *)((char *)&prctl_map + offsets[i]); if ((unsigned long)val >= mmap_max_addr || (unsigned long)val < mmap_min_addr) @@ -1921,8 +1935,8 @@ static int validate_prctl_map(struct prctl_mm_map *prctl_map) * Make sure the pairs are ordered. */ #define __prctl_check_order(__m1, __op, __m2) \ - ((unsigned long)prctl_map->__m1 __op \ - (unsigned long)prctl_map->__m2) ? 0 : -EINVAL + ((unsigned long)prctl_map.__m1 __op \ + (unsigned long)prctl_map.__m2) ? 0 : -EINVAL error = __prctl_check_order(start_code, <, end_code); error |= __prctl_check_order(start_data, <, end_data); error |= __prctl_check_order(start_brk, <=, brk); @@ -1937,23 +1951,24 @@ static int validate_prctl_map(struct prctl_mm_map *prctl_map) /* * @brk should be after @end_data in traditional maps. */ - if (prctl_map->start_brk <= prctl_map->end_data || - prctl_map->brk <= prctl_map->end_data) + if (prctl_map.start_brk <= prctl_map.end_data || + prctl_map.brk <= prctl_map.end_data) goto out; /* * Neither we should allow to override limits if they set. */ - if (check_data_rlimit(rlimit(RLIMIT_DATA), prctl_map->brk, - prctl_map->start_brk, prctl_map->end_data, - prctl_map->start_data)) + if (check_data_rlimit(rlimit(RLIMIT_DATA), prctl_map.brk, + prctl_map.start_brk, prctl_map.end_data, + prctl_map.start_data)) goto out; /* * Someone is trying to cheat the auxv vector. */ - if (prctl_map->auxv_size) { - if (!prctl_map->auxv || prctl_map->auxv_size > sizeof(mm->saved_auxv)) + if (prctl_map.auxv_size) { + if (!prctl_map.auxv || prctl_map.auxv_size > + sizeof(mm->saved_auxv)) goto out; } @@ -1962,7 +1977,7 @@ static int validate_prctl_map(struct prctl_mm_map *prctl_map) * change /proc/pid/exe link: only local sys admin should * be allowed to. */ - if (prctl_map->exe_fd != (u32)-1) { + if (prctl_map.exe_fd != (u32)-1) { if (!ns_capable(current_user_ns(), CAP_SYS_ADMIN)) goto out; } @@ -2120,13 +2135,14 @@ static int prctl_set_mm(int opt, unsigned long addr, if (opt == PR_SET_MM_AUXV) return prctl_set_auxv(mm, addr, arg4); - if (addr >= TASK_SIZE || addr < mmap_min_addr) + if (untagged_addr(addr) >= TASK_SIZE || + untagged_addr(addr) < mmap_min_addr) return -EINVAL; error = -EINVAL; down_write(&mm->mmap_sem); - vma = find_vma(mm, addr); + vma = find_vma(mm, untagged_addr(addr)); prctl_map.start_code = mm->start_code; prctl_map.end_code = mm->end_code; From patchwork Wed Mar 20 14: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: 10861913 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 0BFA814DE for ; Wed, 20 Mar 2019 14:52:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E1E48289B9 for ; Wed, 20 Mar 2019 14:52:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DF88929D86; Wed, 20 Mar 2019 14: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 6F8F229D9C for ; Wed, 20 Mar 2019 14:52:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B55456B026A; Wed, 20 Mar 2019 10:52:21 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B04886B026B; Wed, 20 Mar 2019 10:52:21 -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 9A5B96B026C; Wed, 20 Mar 2019 10:52:21 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by kanga.kvack.org (Postfix) with ESMTP id 764F86B026A for ; Wed, 20 Mar 2019 10:52:21 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id f89so2684004qtb.4 for ; Wed, 20 Mar 2019 07:52:21 -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=K4asd4oI0/VXu7bks/7ZozR0oEqYxUgnLBJb7yiErTQ=; b=avqwNt+r1oNO+Jzb4ms6jJqBYnX7KyvP7tdEMiWxCNCtBGZydBy6acJdWe01AtyQaQ Qb2MHyqInce7iLiCBttMj1evp/kUIgTKKMZRdf3QqvG/VZdbZzcr4j38bWbTRQJSuDDn sslUy6/UqbWhRvrCPMxIFQHV1o9kVHiSZW3xtAN0+QTCeIqcOK2KIGl3auLqNT8K8NoT jw8gvsl92X94/2Z1Y8NNf0xfsu7gbBSfaWHbtLcdC3xPi/wx6OG7N2RPgkRwdOM6ejKe z3qEBu6IQC2fJsQsi6ATjg7qbfWpsowPIAnGC9MGtF3Z09961WBw6d85JCTtEtFsuCsw aGkg== X-Gm-Message-State: APjAAAWtMuMzyqaM9dfs/wMIXdjIpCdgKCCXYqre+49ykvo+3jVNueMn 3wGtquylxS0AwcHAR2Ko3DaQd/6JqZ9WtGKpVYrocKemLK6GO75gPT6YBQd/arm9SmDkawNyHox MolvakMeGgo78anUEMnlBY1BjGkaWlWFBFuHpaqfHk8poV4HMftiqQg2og7GSfRwrUA== X-Received: by 2002:a05:620a:15f5:: with SMTP id p21mr7114061qkm.5.1553093541179; Wed, 20 Mar 2019 07:52:21 -0700 (PDT) X-Received: by 2002:a05:620a:15f5:: with SMTP id p21mr7114008qkm.5.1553093540406; Wed, 20 Mar 2019 07:52:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093540; cv=none; d=google.com; s=arc-20160816; b=DdK9GDGwEcV0uLuwoyLjSCj7uGmIsz7jMzLc/bWypPfsa2bMRl2BpN1I/RCPCxseYk bUhgM/b8D6RhUblUlcaqSQt9J1JOLqtwld0ErltIofke0RRBmCIlYVaAAZzoDlBzITnv tlKjIWv8s3czdP3iSMPUoneofqz4sB4UvcyJepMghSzKhE3M0i0i/I7zu/Zjf+ZMHm0j jS+qc/ElnhepBKQuZsBHxfJsqYEAhOA5uLsmKhNzSthETEcV0yJ7sLTeCNDLnE07OxXX aF1XlNvc3YHz/aCG8YSS/3T0+T8v/0FATwlUsUvnHluFIDm6Dtn4puW89VmV1clrhzt6 SNog== 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=K4asd4oI0/VXu7bks/7ZozR0oEqYxUgnLBJb7yiErTQ=; b=Hlg649wE7nwVJyfXh05xy/oKrpB3x/vdxW4nyXpUnAzBhIdFdpG7appkqq0U3zOAv8 magiE/t0poeNvWRZvfGgHMjw6DJllcM1YNdW8E95P3VJ0fjHHAS83dUIe9Aoe9wEGsd8 GuuKI9iZgWuVEGEY9cjyFC+LaUG+3PTmFF/E0C2MlAEo7eESes1hy6gDPLk/tkjQEjii mpnUmR+9vjCSQ9voEbhWkqpVy75EZ+UvlxGDfPk0P7fT0RoeZ1zQFtqJeBO6fouw4KVp edUxQXbUDo/0De3IK/Tm7fVZMUS44BkALJXP/d7hd0XzV1k2m0vqz5Oo8+f+kdoIQQk7 iQZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Sefw+LBQ; spf=pass (google.com: domain of 3pfosxaokch8dqguh1nqyojrrjoh.frpolqx0-ppnydfn.ruj@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3pFOSXAoKCH8dqguh1nqyojrrjoh.frpolqx0-ppnydfn.ruj@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 f8sor3967143qtb.16.2019.03.20.07.52.20 for (Google Transport Security); Wed, 20 Mar 2019 07:52:20 -0700 (PDT) Received-SPF: pass (google.com: domain of 3pfosxaokch8dqguh1nqyojrrjoh.frpolqx0-ppnydfn.ruj@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=Sefw+LBQ; spf=pass (google.com: domain of 3pfosxaokch8dqguh1nqyojrrjoh.frpolqx0-ppnydfn.ruj@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3pFOSXAoKCH8dqguh1nqyojrrjoh.frpolqx0-ppnydfn.ruj@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=K4asd4oI0/VXu7bks/7ZozR0oEqYxUgnLBJb7yiErTQ=; b=Sefw+LBQD0bYtQOF7Z3/FF5rWl5fnzlahJItvb5ZICgi8f6u4tK/9F6nfzFXPich3o EcUn7JVF7lEJYJneqAC0m7D0m73A5VmH620Qfp8NMW21rRutLGEd2Gtg1ILCNwDmdZNZ FjIyPxXe0aqGhTuqozDv4invVSFneb5ZIlySFOfmNfdoGDZG5iv4aiillZPkIZFAoy/1 Op94lqwLg26NfLmDs8/kDtPAlvGhye76V+rDgwQLh/XO9bfB2FGQp9lBXpf3J2QGTDlH XxqI4JERIWdF2z3HZogNyJS65SJ4WuJX9kuolmSrlZO9gRMOVvxcsIln5olphRwer6Xd nAYQ== X-Google-Smtp-Source: APXvYqyQ4NMWwmcD+QNQXwycznUSrQ4ccjdMHmvJTyO2jY+wRoLxkzWub5WBnbxSwYjZ06st+3eMc86w9nXfL0n7 X-Received: by 2002:aed:3b09:: with SMTP id p9mr8634647qte.55.1553093540002; Wed, 20 Mar 2019 07:52:20 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:25 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 11/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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); } From patchwork Wed Mar 20 14: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: 10861917 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 CCE7713B5 for ; Wed, 20 Mar 2019 14:52:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA36128DC0 for ; Wed, 20 Mar 2019 14:52:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AE1F128DDA; Wed, 20 Mar 2019 14: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 1EFD929D83 for ; Wed, 20 Mar 2019 14:52:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE1096B026B; Wed, 20 Mar 2019 10:52:25 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C3D396B026C; Wed, 20 Mar 2019 10:52:25 -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 A90866B026D; Wed, 20 Mar 2019 10:52:25 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by kanga.kvack.org (Postfix) with ESMTP id 672946B026B for ; Wed, 20 Mar 2019 10:52:25 -0400 (EDT) Received: by mail-pf1-f197.google.com with SMTP id m10so2768396pfj.4 for ; Wed, 20 Mar 2019 07:52:25 -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=TypqXDoyNXONz2oDo7T8C+4NlePqKxo9jFd/dN9OnUY=; b=KJPFUpdyLhG3jN+U2nA1vmUWXLA9u5DFhlRA4E7bfC0z5zHZfyqT/5pl34Jwrn6MQo gSobsJdWxksItN1nUdAbkwKzmu+vKGkfGD0UewDpriTtouddUlQL5/f3yvZ5aBftXlWm UY2sgmR2wZWVvibBMHsBaa7hNy3MztsrDVO0OXh/nGZsAgS2XNIV0xO1LLs7Rtu0VmQI NRo/cbvAjHKyXFnRu9S2QIZEtpjnuhtloiREYZ93ASy0SKIk9L12fjwJJqC1EG2TeE+n vOTnODa7Kkvjb99zFY22RrBEZW5Nx8gdVfbBwdcH+83JZnM38o43xYEUQNXR3viW+fGK 17cA== X-Gm-Message-State: APjAAAVfny/BCrwamBW0UmijXCEhx0YC3DnrBzZTCqre3DDGTIvwXLSH 3Ombr/Y0YdO6Pz7ITBSNB6mx1UeXIo1jjtM5eDYZtn2gg5dJtgbutAfKE0ftkiCoHUDRtPfARN/ dc84xIWT5lNNWZVSL+HCc/ISEmQVYash7hf/h4BldrCY6zqVbIiMxY/57VdJe1jMXDg== X-Received: by 2002:a62:12d0:: with SMTP id 77mr8140155pfs.15.1553093544947; Wed, 20 Mar 2019 07:52:24 -0700 (PDT) X-Received: by 2002:a62:12d0:: with SMTP id 77mr8140098pfs.15.1553093544022; Wed, 20 Mar 2019 07:52:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093544; cv=none; d=google.com; s=arc-20160816; b=BIODG2RnP0rvyE/X0WxbfpMd/DGJYptmCL5+Zbs3hespGpRhrFZSkNS4JTqoYy8RCK 5lZpPBeENFEnWKe5fMJjE5wAvy/gqRfgqhHaDth5YvnNrSY7yLCmmL8fH4BrhLIJclcY 2h2Sg9MlkO59gcsaODNvrkkDzMZcfa6Q5jOlRZOavAsrrGzHeypSAMucCdJgm2ZD2f27 /WTHdcw/pz13wKP6bXKTvYaIANNUnxXk5rrxEtrE4X29RxVA2Xfn1M9CPlWBPTmjDywb FjVS99Yjr2fqwEAeDsh0OSVBi/QstN4vEq47OSyjC5USq11OabzIhuSu+O1dNF+BN9vX 17Ow== 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=TypqXDoyNXONz2oDo7T8C+4NlePqKxo9jFd/dN9OnUY=; b=YB+JKwqxZbx0BOnJUN970tSxxoG+x/fqOtVS9cU/luNUvzK6kddGwmc0viV1dXOBb8 oeTJVZL2IGMseKMhdSj7ftazd6JQBPZlRTv+k5LU4MeqMjT31z8PhFR4PM6Ll3wS+JtA xj0FmKUtSsSMxlgQBoju2tz4mWGEe+H+16uKjVc27sLimE6RIN3wAZzb96CT25hpotZR z69SQ8qIqWP2c5pzzwBmih5Dpd25QgMo/NtD0spSWmVxB8lLyTNJJgB+xvfQe18ZP6fM Ow221LzbaRHkbbrmCi3A0nUZLUF0IyxEtQgsMvMMs3UeysA3FRAK9RgIXX9B7m2ZJzL5 CG3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=VBRIEAm7; spf=pass (google.com: domain of 3p1osxaokciigtjxk4qt1rmuumrk.iusrot03-ssq1giq.uxm@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3p1OSXAoKCIIgtjxk4qt1rmuumrk.iusrot03-ssq1giq.uxm@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 m7sor3295573pll.71.2019.03.20.07.52.23 for (Google Transport Security); Wed, 20 Mar 2019 07:52:24 -0700 (PDT) Received-SPF: pass (google.com: domain of 3p1osxaokciigtjxk4qt1rmuumrk.iusrot03-ssq1giq.uxm@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=VBRIEAm7; spf=pass (google.com: domain of 3p1osxaokciigtjxk4qt1rmuumrk.iusrot03-ssq1giq.uxm@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3p1OSXAoKCIIgtjxk4qt1rmuumrk.iusrot03-ssq1giq.uxm@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=TypqXDoyNXONz2oDo7T8C+4NlePqKxo9jFd/dN9OnUY=; b=VBRIEAm79eYl13DjJG/iyvfKJYZY4JaqF0G4F5Q9Tdc02tcv3SWnQ7Xrt3SjBFfGvg PcwgciJDQT6onqfPRyqhMrslyXsxz10zdr5FgA2LGaoQc9yos1AyT8UyusDzxef8QaZN z/f2pc6v7A54U9tLiW8lNWS179RcuvzfHFAZzepf2J72aR6ktogxURSeTjnVYurpdTa1 B6f7t3ef6UHMUiBVLuaDIwpdpl0FL6sYq3LH523DSKALKUVOqO0tPAJ4+aeT4zaZmhz+ IrRrf0UOiKCQsyUUh28eTbRMIsy4aBjzHA3qkBs+V7Ol2Fi+w51237VJCFLw3aI3tuE3 QzOw== X-Google-Smtp-Source: APXvYqzAZyZyGva2EuPoJScM6UyEVyBDQ8rao6oUZ0kApC3+FesuzwO5WKxPmyM+dQi9tBAx2Re+64THdUBgYOfQ X-Received: by 2002:a17:902:8a98:: with SMTP id p24mr7507223plo.18.1553093543416; Wed, 20 Mar 2019 07:52:23 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:26 +0100 In-Reply-To: Message-Id: <88d5255400fc6536d6a6895dd2a3aef0f0ecc899.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 12/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 user pointers (obtained via instruction_pointer(regs)) for vma lookups, which can only by done with untagged pointers. Untag user pointers 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 Wed Mar 20 14: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: 10861919 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 B675B14DE for ; Wed, 20 Mar 2019 14:52:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C34829D12 for ; Wed, 20 Mar 2019 14:52:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8EC2F29DA6; Wed, 20 Mar 2019 14:52:33 +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 C51A229D12 for ; Wed, 20 Mar 2019 14:52:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FEC76B026C; Wed, 20 Mar 2019 10:52:28 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 58B9C6B026D; Wed, 20 Mar 2019 10:52:28 -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 402CE6B026E; Wed, 20 Mar 2019 10:52:28 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by kanga.kvack.org (Postfix) with ESMTP id 1C5736B026C for ; Wed, 20 Mar 2019 10:52:28 -0400 (EDT) Received: by mail-qk1-f198.google.com with SMTP id y64so13388482qka.3 for ; Wed, 20 Mar 2019 07:52:28 -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=BhVJ8uqyuZN/RhYo8e4D2Wo6j82d4Ue7nF7755mNwHM=; b=h4ZuGy6EmMHZflRlWsXavzdORrbKMBgsICzQyY7BlMsXlw2TYvU8xs9dzdETQ+1JsN tz2cDxrfvADetgqg2XwsmAqpVS+aYgnWxzODq5AAlTLxYx11TVMzKwPdvZeKtnOy9/Gn Rpc0R25rT8pXJSrsNFPdC6kQH2awGnO/QABsqx+GNKFGwz8Cr001F/V6GfdjiH9LXIio 6FX3vCrWlmhKCRfB2fxNnevm3JauxNhWjtHrWWEGUwhXY1u7k3fQQ/0Ky2kF33jX/rFg FflsOXaHK7k84lZ4wh8RYzGMleHiN3Z/w7APbVc+7S2xXFs1R7EV7++BUI1cgcyaKZhi GWSA== X-Gm-Message-State: APjAAAV/68Qg2MdceZzxbMhzzt3IWjfmaeWztMf+SpvvgUfJwvpnAjEq i++K5X0+beEyZNs8tF6vE5jSOc7wG6ydzRsLyFEioA2693wy+FYfN/Ly4UFZYGFCFOsEUjOtOMF sRy3a1kjuiScyOdvMcjN2Wxyt9Dl6vI1m4ZZYjTegii5eMgzRlrIjO+vrDre/MYkLFw== X-Received: by 2002:a0c:9ac1:: with SMTP id k1mr6821447qvf.36.1553093547884; Wed, 20 Mar 2019 07:52:27 -0700 (PDT) X-Received: by 2002:a0c:9ac1:: with SMTP id k1mr6821398qvf.36.1553093547245; Wed, 20 Mar 2019 07:52:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093547; cv=none; d=google.com; s=arc-20160816; b=h4mXkMYRrZPEbIa1nDvnAU6fnizhPV4flCf0zkilACYhTN9wjICdtN6XmmiQ8QLbUL S0tzPP7z/vlJrBHmtY83zyO10zfvU+cZPl7BqxTdIsUaPq9KpaXWLqLvDBK8akGOKsRA 9ZGNdvQGGxl8Vo24atnoHUCI23nHKN6DTYsJSWragMbPUWt4yTmysMrYrHrHgvQFtqvg LPdIToqUMcRW11CEFrl6HbaMtfWBTt/i+BGBcUb5+eTzKS/GyEK/mih/UMWXejKF1Tmd 5Y/sT+xAmkjBDhwoAecfuMKHOMHorrqaTk/hNn/hbg0VZBkYHNeaHh4CphlEEbCyg06F 1q6w== 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=BhVJ8uqyuZN/RhYo8e4D2Wo6j82d4Ue7nF7755mNwHM=; b=JYB7+7CEhffpaMz3M05nUPt1NV6QQNaIJ6tgIu0naByW1SkQPKM5qf8GJ5bVrgYM1k xO9AfYov3F9+itPsD9c91OMewddh/9zFi3b2+x6bpzwepbTVcin2uJ+4kNVT9d8hMY+X Veol8M/TgpRiT/Mu9EaM4oYbo2mGcUkt0rNt6dLMH7QvHG0WLNTaImZH/3UAfsFV/Blk n1OxQ3Bkp1KFXi2pLDfNH2fgx+9LSkCr9e3uj6RhISge9dxjfVe9VIMSOHfPlvrpyY9f S+4Sn30rqEdLX5EHAifWJ40bwlKkjcna6PVlpOlRJ7JYfVFWQyADZ7h/afRtJjxhZnbR /73w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=JN7peWS7; spf=pass (google.com: domain of 3qlosxaokciujwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3qlOSXAoKCIUjwm0n7tw4upxxpun.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 p123sor1738930qkd.121.2019.03.20.07.52.27 for (Google Transport Security); Wed, 20 Mar 2019 07:52:27 -0700 (PDT) Received-SPF: pass (google.com: domain of 3qlosxaokciujwm0n7tw4upxxpun.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=JN7peWS7; spf=pass (google.com: domain of 3qlosxaokciujwm0n7tw4upxxpun.lxvurw36-vvt4jlt.x0p@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3qlOSXAoKCIUjwm0n7tw4upxxpun.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=BhVJ8uqyuZN/RhYo8e4D2Wo6j82d4Ue7nF7755mNwHM=; b=JN7peWS7Nez+2uGYBenvD1URtgpAIqAee70ib/k/sIrShjHTRTOTS60cMewca4/dl+ dG9NPJL3RBHz+jByCPy9VsQpiotQxDiag9Y5aB1mow2uCgebTPUHJtgOnmaSI9Vr/YIx hQI/v/gR0GvyO5deZUXNGQI2iRQRxhpRf4qspE3jPUxJjXOAuD/wl6/iqPcyOgYmtLKK MWpwP9BARDOkmKwS67XX82wJzNDDELNK9gdSeTBhBvMrWdTjib0F+nJEJKUwKFoB/pDB SXeryLoUidHqjz93zv8BQ7DsI9WVz5TfwJy9iV6N2sA8iMykCz2Q8F38PNgxFh8B+8WB 8apg== X-Google-Smtp-Source: APXvYqwzO9qScb+3DLKygLOG3z91c2IWDiaev09n3TsGmqkOq4NcQ5CsSt3t0f+AffnIIDyplmnedU704klPsHau X-Received: by 2002:a05:620a:15fa:: with SMTP id p26mr919440qkm.51.1553093546857; Wed, 20 Mar 2019 07:52:26 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:27 +0100 In-Reply-To: Message-Id: <09d6b8e5c8275de85c7aba716578fbcb3cbce924.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 13/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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 user pointers in this function for doing the lookup and calculating the offset, but save as is in the bpf_stack_build_id struct. Signed-off-by: Andrey Konovalov --- kernel/bpf/stackmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } From patchwork Wed Mar 20 14: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: 10861929 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 6FF7813B5 for ; Wed, 20 Mar 2019 14:52:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5DE4629D7E for ; Wed, 20 Mar 2019 14:52:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5155429DA5; Wed, 20 Mar 2019 14:52:37 +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 2D41A29D7E for ; Wed, 20 Mar 2019 14:52:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA4926B026D; Wed, 20 Mar 2019 10:52:31 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B2D5D6B026E; Wed, 20 Mar 2019 10:52:31 -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 97EE96B026F; Wed, 20 Mar 2019 10:52:31 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by kanga.kvack.org (Postfix) with ESMTP id 627C56B026D for ; Wed, 20 Mar 2019 10:52:31 -0400 (EDT) Received: by mail-vk1-f197.google.com with SMTP id 5so1031392vkg.20 for ; Wed, 20 Mar 2019 07:52:31 -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=m8A/eWnO1t/szRUY+Sf0prGvVhEq1OhdUwg16kciR9Y=; b=JaomkFo/Hv7dJ3Gn1FbMVAOFzuwR/U8kx3hUAisMdy5QvmKn9kxynz9FgCx7hWw3vg i4FkpiabaDWW7tB667vMpKLQ/6wofLaQH9hn16DbeTmB2BfzhOTPpo+RzL4cKew9lhtR NQmI0q8rnK1I2dQhCR+/ETR4aMZ+vCQRpqUnSumeYPbqTFJujpoHWEIqGUbsZK1DwM9k vxPIAgEO3fNX2K9khrRXtdBc8CJuS2rQpfrFFT0hB/uZ4TVBTP98uY9lRw6K04lcA55X WS3KaEtXgHWcYerLLwbqgd8X4FSJjmLBkgv1VwTKJN0SDyz6TrvLobJzip3YAzqeNbJa co/w== X-Gm-Message-State: APjAAAUBi+fQXx2hgUVTg/GdBpqrRpK03VX9O3WpCKhtU5cQB8QxOyYK dzq1Behd3UQSgMVOaAtXk7avrTxNc3a0zxmUbLVmvip1iDDCfYQA2fwpCm6n5u0VC1+L/FVXR4F Nj/4Xq8NbpEYiGYd//55T2T27aqhU+eFhDoUXEV1Ar6+8Ew9N/ZJ0mDEtsBe5/xGCIQ== X-Received: by 2002:ab0:2712:: with SMTP id s18mr4464166uao.114.1553093551117; Wed, 20 Mar 2019 07:52:31 -0700 (PDT) X-Received: by 2002:ab0:2712:: with SMTP id s18mr4464137uao.114.1553093550398; Wed, 20 Mar 2019 07:52:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093550; cv=none; d=google.com; s=arc-20160816; b=kiGZwk5mCEFVsA6uqWey9RzEXh6c3FrjOfoMcRVVagXVy3C7/wyknUvD2/qWhqtZqV XCmJFGOB+gmv8bonUisfqQaxxxYVICvY1je0Blcgg6FrU7xpbgkLAvtSUdbIRcrCid/m wT0PNLWVtVI5sAn8hJ3QnKEikNWKc5cVndolrKkd5KKkX24Yy5duOkwllP8HCzPxpDam 01FMIDIUj+4/BWXf31RYHrUN0deYHegaD3g2leSV88rqmPevifO6vwiyenYYCffj4blw 3dlbaJFjs3Vvdvnz4/nf9+4J3YXqnpS/V5FVz/Szyn8bLDR5tpbi9cXTteN/OzMEnHvN tiqA== 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=m8A/eWnO1t/szRUY+Sf0prGvVhEq1OhdUwg16kciR9Y=; b=WQA7mITZ6w8+5teToj/ZG6zRgEigthAeK/yGY126gX/lpRR5Bt5QaTiUM+iUzR1MCw pv4a0Grwu8GboBzCU6T6GVQhSWqRbXJ3A92gUTocSEHeM7NWE/1C10Xdb33d+D0x4WiI b/4OdF6yISC+ghRdLow2muJYEKyQAsFXoy78+MlTl5F+f57nZ9F11+ptslokwn4AtAin 0L55fwlKwvTm26CXK412JFxv8yHfOmsQcXk31lJ3qOQqvkumTpwzn5ZLMgBGhY/8M6Ph WpQ8kbtUFwzwnpa0iMxmBOpR3kIMFQloCZ4Lq3y2eOD6HaJFTZXYa+f40ixWnm0JA9Sb y83Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="cS/GWV3n"; spf=pass (google.com: domain of 3rvosxaokcigmzp3qawz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3rVOSXAoKCIgmzp3qAwz7xs00sxq.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 a11sor1321772vka.18.2019.03.20.07.52.30 for (Google Transport Security); Wed, 20 Mar 2019 07:52:30 -0700 (PDT) Received-SPF: pass (google.com: domain of 3rvosxaokcigmzp3qawz7xs00sxq.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="cS/GWV3n"; spf=pass (google.com: domain of 3rvosxaokcigmzp3qawz7xs00sxq.o0yxuz69-yyw7mow.03s@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3rVOSXAoKCIgmzp3qAwz7xs00sxq.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=m8A/eWnO1t/szRUY+Sf0prGvVhEq1OhdUwg16kciR9Y=; b=cS/GWV3n1i5lKwRxDER3D1j30wbKLrIjlKCprX6vTMe8cTVCKT78AfLte355OG84/3 9+SHdUMKMpHe6+iOH3VzHT8pjZaRW6z5pqFcAKCDTvZf0KT3SG8dydvzjoFsqtcRHpO+ s7SFViAVxLm68wpAwuS47+5QK7VNwFMa5b5lxPhRs6N/VfdBIHBgFKkHSvd9I7PtKYIh RebKnvIoWsQx14IlpHTag2G1jk9EWaN7+3KeAj9wdOKQHYUJVkQSYeiCwVLs53b9gTS2 jR0wtaevF8SL4RJoxbCrc5cwPvE9OCqov4p9AQcvaLAPdf8xImWPv+ch+hRrKoxeSje1 7BOw== X-Google-Smtp-Source: APXvYqw58aZo87dG3fwjMiai1M3z5FY5q/6ly8PoJSCWFGZ15x+DIhLzfcwRQ16QrQdSY5QNXUz25VoApSfh8lGu X-Received: by 2002:a1f:c507:: with SMTP id v7mr16491398vkf.18.1553093549995; Wed, 20 Mar 2019 07:52:29 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:28 +0100 In-Reply-To: Message-Id: <017804b2198a906463d634f84777b6087c9b4a40.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 14/20] drm/amdgpu, arm64: untag user pointers in amdgpu_ttm_tt_get_user_pages 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. amdgpu_ttm_tt_get_user_pages() 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 --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 73e71e61dc99..891b027fa33b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -751,10 +751,11 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages) * check that we only use anonymous memory to prevent problems * with writeback */ - unsigned long end = gtt->userptr + ttm->num_pages * PAGE_SIZE; + unsigned long userptr = untagged_addr(gtt->userptr); + unsigned long end = userptr + ttm->num_pages * PAGE_SIZE; struct vm_area_struct *vma; - vma = find_vma(mm, gtt->userptr); + vma = find_vma(mm, userptr); if (!vma || vma->vm_file || vma->vm_end < end) { up_read(&mm->mmap_sem); return -EPERM; From patchwork Wed Mar 20 14: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: 10861933 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 8FAFB13B5 for ; Wed, 20 Mar 2019 14:52:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D00729DA1 for ; Wed, 20 Mar 2019 14:52:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 79CBF29DAC; Wed, 20 Mar 2019 14:52:40 +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 E2F1E29DA3 for ; Wed, 20 Mar 2019 14:52:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ED88D6B026E; Wed, 20 Mar 2019 10:52:34 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id E64B36B026F; Wed, 20 Mar 2019 10:52:34 -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 C40EC6B0270; Wed, 20 Mar 2019 10:52:34 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by kanga.kvack.org (Postfix) with ESMTP id 92AC06B026E for ; Wed, 20 Mar 2019 10:52:34 -0400 (EDT) Received: by mail-vk1-f198.google.com with SMTP id x200so1065269vkd.0 for ; Wed, 20 Mar 2019 07:52:34 -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=75Sme861PZA/tNUQAzLBE6PJQCb9DBJI65KsoGIZxyY=; b=TmiB8MtqRBd3NKh/x4XoL9szu5PGReSwvyL5s5M7IIoj8s4wLe1JAu9rbmWPq+ufY/ axk27VmP+3N6Ruxrzt9EbrLWLo8BD/lSpSitVIuX1mXRoSz6dZ1pIsDrmw75+fMf+cQv ExfAAjdqUWa60LhBmWtKWSp6/oPLFz+Cuu5FMZucCUL27g0XThIBGFUArvT6ZTutfO58 kmI4mx+JOudYuLaSXhs/GpxXVzkpNCsVr5O3ltHyCLBeUbEspNKiO3rin1gTbq/rut7j WbTlGdHVf9UtRoQT0utZy0zyXm/8USDUyyK8+WjmffrwDMgN8hMAeHEcpIKTw5hrQMuR vyYg== X-Gm-Message-State: APjAAAUwHaPkBNnW9H7QVHQzlt0BebObtop+XMwBn/3FY2Ku7k+TnSQZ RDCVhd2HLaiTfNXa3p1qppS0UlJKauxiEN6X0/bibmxM3JnrchJ6MNT1qhrfmgG+FD7jmtL+do3 jH/1McxstLEk7j4WKOD6M1vvUZt2tB6Wb5w2sCZJvmLWZDfDA3j8cdIvmf4T+tWMCsQ== X-Received: by 2002:a67:f41a:: with SMTP id p26mr5056497vsn.140.1553093554344; Wed, 20 Mar 2019 07:52:34 -0700 (PDT) X-Received: by 2002:a67:f41a:: with SMTP id p26mr5056467vsn.140.1553093553598; Wed, 20 Mar 2019 07:52:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093553; cv=none; d=google.com; s=arc-20160816; b=piD6WxnBB9MDxQqNUSeX7xNlb2UbPGuvolmZHpB7NxbTOhHMNP0az6gcfWYQe13jj5 LLsy7hZmuW3V0/SQI8Srjzuhi5wZQqRFpEF8LHrpq68ek2YHTwgMt9vqt5mjfr7KAx9j QmQNYpksu1wg9Rgu6ZiIzDVXgcEP1rj7WheZ454RPHDDiszPqbufMw0WUKeZtoeDoCcv zjQvET6VDkdSQ3rCjhBnd7dXxKly5tgj6bN1hl3X2bluu/rnDVm1UVNlxEgCCWNf3bhT qg/kMK2TKuC/QdZjFSvWWvHElTBa0Mj2wCbc9LKr56KZ1MXqLImizM7SXTYsv2zgTDkB X+DA== 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=75Sme861PZA/tNUQAzLBE6PJQCb9DBJI65KsoGIZxyY=; b=ohaOz2C79+PyHlOCE3ts3kquXSgL3nWkNQD0LWq65skY12sQVudwL82KcPdbEGPcUR pKf8RyqyyiCeB0u59CLLKRK+McW2g/MvUIAchosm3IMLRkhhwGVmPeuHEUBZOFKfZ5OD v/SJ4tGB8egJH+vc6YHMeCSiEJm+EFSN0KDdauM9LLu7SxvjCnhBXRYWCSR046MVgEqv oK9KCMrhLmBa9xYDaeIpe9a79JfJAqbKn1WT4885TY4pBlxvAQ+qVJY1KqtDltYlUU9D zXhhP58GLRQKpQLvLpRjJeqhwGBqvyiY33FRxFU30G8pkonnIJXxnaDMIMqYqrnt70wu GjGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=TRw7Yj5B; spf=pass (google.com: domain of 3svosxaokciwq3t7ue03b1w44w1u.s421y3ad-220bqs0.47w@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3sVOSXAoKCIwq3t7uE03B1w44w1u.s421y3AD-220Bqs0.47w@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 q136sor1195271vkf.33.2019.03.20.07.52.33 for (Google Transport Security); Wed, 20 Mar 2019 07:52:33 -0700 (PDT) Received-SPF: pass (google.com: domain of 3svosxaokciwq3t7ue03b1w44w1u.s421y3ad-220bqs0.47w@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=TRw7Yj5B; spf=pass (google.com: domain of 3svosxaokciwq3t7ue03b1w44w1u.s421y3ad-220bqs0.47w@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3sVOSXAoKCIwq3t7uE03B1w44w1u.s421y3AD-220Bqs0.47w@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=75Sme861PZA/tNUQAzLBE6PJQCb9DBJI65KsoGIZxyY=; b=TRw7Yj5BILFy1o0Gjs1P7PG7K0bXvmZQkYhNUVzGU7eBwuMllGXuOholy2EFVltyM4 Eq2uq+97Zf6uwJS8d1ZdNFpiTnL8SNlpOD4sWLxmZFbN853Lcc52HrY3CkqYjTrkgvv3 P6+/fIjezdNUVDfMCm7BsfzV0JBhv6f1w4D1u9PxEoZJ5VL6MOfN4r5Co6Q9TCpikOXk ufVXz2a0Bri+ZzG/0QUwT0FF9pQ83mZbCp5f+6lD7JfSPjUlslIphqktlFrt8/uqaCtx xvHcpr2f1Cv9vpNRpKRy3dnpc0Pr4AZKm48fkJGsVCh95A9tTuAmJvWLp4Ouo2pSZNMk pVyg== X-Google-Smtp-Source: APXvYqzSD9kzbCxXB1NhkO2CDkCTaQO/WiJog4chzbyr47Ky/uMyCpQjT2x0YU1fYyYTJNw37CTZ8G4iAZNpW0Wl X-Received: by 2002:a1f:c507:: with SMTP id v7mr16491493vkf.18.1553093553224; Wed, 20 Mar 2019 07:52:33 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:29 +0100 In-Reply-To: Message-Id: <038360a0a9dc0abaaaf3ad84a2d07fd544abce1a.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 15/20] drm/radeon, arm64: untag user pointers in radeon_ttm_tt_pin_userptr 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. radeon_ttm_tt_pin_userptr() 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 --- drivers/gpu/drm/radeon/radeon_ttm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 9920a6fc11bf..872a98796117 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -497,9 +497,10 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt *ttm) if (gtt->userflags & RADEON_GEM_USERPTR_ANONONLY) { /* check that we only pin down anonymous memory to prevent problems with writeback */ - unsigned long end = gtt->userptr + ttm->num_pages * PAGE_SIZE; + unsigned long userptr = untagged_addr(gtt->userptr); + unsigned long end = userptr + ttm->num_pages * PAGE_SIZE; struct vm_area_struct *vma; - vma = find_vma(gtt->usermm, gtt->userptr); + vma = find_vma(gtt->usermm, userptr); if (!vma || vma->vm_file || vma->vm_end < end) return -EPERM; } From patchwork Wed Mar 20 14: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: 10861935 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 5A79813B5 for ; Wed, 20 Mar 2019 14:52:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3A39028BF0 for ; Wed, 20 Mar 2019 14:52:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 37E0C29D9D; Wed, 20 Mar 2019 14:52:45 +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 7B21E29DAC for ; Wed, 20 Mar 2019 14:52:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49E786B0271; Wed, 20 Mar 2019 10:52:38 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 42FFE6B0273; Wed, 20 Mar 2019 10:52:38 -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 2534B6B0272; Wed, 20 Mar 2019 10:52:38 -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 EF6786B0270 for ; Wed, 20 Mar 2019 10:52:37 -0400 (EDT) Received: by mail-yw1-f70.google.com with SMTP id x185so3430892ywd.4 for ; Wed, 20 Mar 2019 07:52:37 -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=JYfYaqFkvasJC562WHpti4tYqqXwAjMl9KNYEduKdaE=; b=InXhwHNB1PwZoFY11lg4e0J1CKF7W4wh3jnhuyjRe5nR7VQsm1viUUzFhDHTE/Zq4Z TNLgiojUZq7pehhTMJFli03Es+9u/NdZJNqEz63k7Jv3OQ2tmc9nCmmbd3hoqmRQnSx/ MW1aMwTkbyCp6f3++tIe+fHm7SZIlDzNMVLdmCAp2LUxFZ6ah+lvvPxQzQEm8M9r+H2b PtSxYJ8gNmTzOplhbQLdbslXf4+rZTzYyM/WWy5UxZvbXzDxVzkgDZIuv7jj79g8265H 9Ynt+ZywW1Q67D/ephPFUAINZIQ8TkGp47UKjgB5reZBn/aNzMzIJwj0ezCibFgR7MAa KUTQ== X-Gm-Message-State: APjAAAX65/1Fx4FfaZAMI5JZyvnjqIqmVQk6eB3bGRif3yPYbINDzapI YaJVYrxuW76NkfS3p9ZR39kRVRF0yBpkUoPYxebNba0yRxiajR/NTqEDSHlI2+Ghn94BlhSP1LX 5DvW0gWlLI4x18F0zdJybPkAKa22moVsuZc1IAwD+sExzOS2BxRPdLfr7ejrgxSSR+w== X-Received: by 2002:a25:ea02:: with SMTP id p2mr7284814ybd.41.1553093557730; Wed, 20 Mar 2019 07:52:37 -0700 (PDT) X-Received: by 2002:a25:ea02:: with SMTP id p2mr7284754ybd.41.1553093556781; Wed, 20 Mar 2019 07:52:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093556; cv=none; d=google.com; s=arc-20160816; b=HH4K+13dLZ2GQas3t3wwKwsBXjP787V82yH6WUW01sC5zYd9M6X8znXKFlwIN9YHfr ZT+B/+pin3UxLMjraTBY1bOln4QbEKAzg3IhsdgwGKUC8UcoFz4fl1sZCSn8C7kZn2Su uurKx2QJCbq8RTYnt7HeJrmtkpZ30mzJ3Sd9rFUsNlOu+fBmThaSgenFukqjLanpnexl RdXQmN7/MtLdlS6z2x4Uzm2H+wPgpBQcdI2rdqyG3xsBivksQuxgrKSPxk+ndgWbQuTs DBW1ManBTEoHHQ2YlGTf7p37uKqtNUzGu76XjUz7oFOyRgqeNuXQJYSe3fanFl9QobIf 7YVg== 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=JYfYaqFkvasJC562WHpti4tYqqXwAjMl9KNYEduKdaE=; b=OaOJA6H9v28gCvTpXMmIaDtYMzyxAdhDG8zjVU3MdFjsVBVPROTzIsS8B3Z3NMr7c+ cogD2QMhHuqx8hSxTJffcQezBjtmwl76N5TmjG9jrJhgIBsX5lCdamknplfqoMrYJAYl uijPlk+6lBC3iurnizX2tP7Hb2ZWZPn5xv4rvj2cnGUYDF0CosoTexw7IXqiOD2bFUjd zpWKJLQ8ppI4b9xSs6A9ejbZF3Loz0BpX+UuCrmf2RyyfJxYAH1RQmBf+izpOwZ+Ygtt YiSMcpz4Mv8RcAjVbKjINpcIAJoX7MARdQ1SjBEbgOuNbhC0vcYSCjMkmmhV+Km9P7ZR HNzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=sexMIu8a; spf=pass (google.com: domain of 3tfosxaokci8t6waxh36e4z77z4x.v75416dg-553etv3.7az@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3tFOSXAoKCI8t6wAxH36E4z77z4x.v75416DG-553Etv3.7Az@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 i23sor1028257yba.65.2019.03.20.07.52.36 for (Google Transport Security); Wed, 20 Mar 2019 07:52:36 -0700 (PDT) Received-SPF: pass (google.com: domain of 3tfosxaokci8t6waxh36e4z77z4x.v75416dg-553etv3.7az@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=sexMIu8a; spf=pass (google.com: domain of 3tfosxaokci8t6waxh36e4z77z4x.v75416dg-553etv3.7az@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3tFOSXAoKCI8t6wAxH36E4z77z4x.v75416DG-553Etv3.7Az@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=JYfYaqFkvasJC562WHpti4tYqqXwAjMl9KNYEduKdaE=; b=sexMIu8avs3PQT75uBvPTQ7a6BwfzDpDtEim0BHpT2lZIdVCSQQNJCOv1y+KBVjuwz NX0TZsiakkaHgGM438rpKshO2lygtlHGBjF9I7HIZlISq6IjvdJBMN68/khgYyArgEAc 8tbatLWytzPpO7bRWCVSIFqMId8s/P66Z59No3RuANZfIft4UrNO78pUbAaCEl8oBE2Q qNCkyYahb1b1Pv7Y/SBLJD0dj0RxnH2fWpp5qHUGdBZK+/bAoxPvBHDVj/4wKQ82tyl8 DVhiys3Wu1xJZ38zAN40H2K69ZFtxYiDzY02fAJ60bAOEsljjjp1FIjebecLuWwY+E7M Zatw== X-Google-Smtp-Source: APXvYqz/OFC1PuPZodVHMFKw9kUzVJMyrdAYISJ9xGPWIvonfiJf4upSDw3KUidiP9gNNGgKCiqyzVAdZse9Ion/ X-Received: by 2002:a25:bb8c:: with SMTP id y12mr2095179ybg.89.1553093556448; Wed, 20 Mar 2019 07:52:36 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:30 +0100 In-Reply-To: Message-Id: <1e2824fd77e8eeb351c6c6246f384d0d89fd2d58.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 16/20] IB/mlx4, arm64: untag user pointers in mlx4_get_umem_mr 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. mlx4_get_umem_mr() 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 Reviewed-by: Leon Romanovsky --- drivers/infiniband/hw/mlx4/mr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c index 395379a480cb..9a35ed2c6a6f 100644 --- a/drivers/infiniband/hw/mlx4/mr.c +++ b/drivers/infiniband/hw/mlx4/mr.c @@ -378,6 +378,7 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_udata *udata, u64 start, * again */ if (!ib_access_writable(access_flags)) { + unsigned long untagged_start = untagged_addr(start); struct vm_area_struct *vma; down_read(¤t->mm->mmap_sem); @@ -386,9 +387,9 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_udata *udata, u64 start, * cover the memory, but for now it requires a single vma to * entirely cover the MR to support RO mappings. */ - vma = find_vma(current->mm, start); - if (vma && vma->vm_end >= start + length && - vma->vm_start <= start) { + vma = find_vma(current->mm, untagged_start); + if (vma && vma->vm_end >= untagged_start + length && + vma->vm_start <= untagged_start) { if (vma->vm_flags & VM_WRITE) access_flags |= IB_ACCESS_LOCAL_WRITE; } else { From patchwork Wed Mar 20 14: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: 10861943 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 E164214DE for ; Wed, 20 Mar 2019 14:52:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C7CA529D12 for ; Wed, 20 Mar 2019 14:52:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C52EF29DAD; Wed, 20 Mar 2019 14:52:47 +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 274A229D12 for ; Wed, 20 Mar 2019 14:52:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33D036B0272; Wed, 20 Mar 2019 10:52:41 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 2C9D66B0273; Wed, 20 Mar 2019 10:52:41 -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 11C316B0274; Wed, 20 Mar 2019 10:52:41 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by kanga.kvack.org (Postfix) with ESMTP id E01CD6B0272 for ; Wed, 20 Mar 2019 10:52:40 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id 54so2301479qtn.15 for ; Wed, 20 Mar 2019 07:52:40 -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=wXdkYKKqhy/PeP38eGiAHfinlz29ywOf5m6iUAAWrE8=; b=jIHIrT0ljaqUxXl7HwVplEPxTHHUKn5lQGuI6R0O//UDCO/ryrV9a6L/KJdb7Jhrp9 P+4NI2id13/anHk+8rqRpBm5RmG00WqO73UfDoGZDajIawAwW22Z+nfbnVV4Q6D4/g/a q8h7+aRSlM4W2RFFAQvsg7Inhr2FwUu4JChfTi2OukJSG/rxm3znYYoqDO9fJtOdAEEt +o7VaRFosEDJBm1owYYesWaluXYz1NNvY8FxSIG6Zl1Hiwv8OoheLBL+edt1iVqL003o DOfc8bPypuqmVsxjzlk8ZU0Pteo8fdwUHDk9bD0ZPXa6hC7gGSlhht+x04W4XlxNdrg0 4LBg== X-Gm-Message-State: APjAAAX9HwGf+69KGwz3f1+VfCsVkB9WQC562lVMydyb2l0H5CujYPsO NxhhjSl7+1lsB0/XKuW3vUiHxBIfBG8/EdCr1xGcqhexur3+HJjOJKP6w2vk4hHpq1mKsIx8yXy HbZTp0BvkCgEyUuFI8pkDmdEQZ2Eu+XwFaYHNBPBUpF/VG+PyHijqaYccMrRUqXnEIw== X-Received: by 2002:ae9:edc8:: with SMTP id c191mr6964866qkg.155.1553093560650; Wed, 20 Mar 2019 07:52:40 -0700 (PDT) X-Received: by 2002:ae9:edc8:: with SMTP id c191mr6964825qkg.155.1553093559983; Wed, 20 Mar 2019 07:52:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093559; cv=none; d=google.com; s=arc-20160816; b=aEeY2nA6BMy1h8zs8VEy2xU28wuP1GoeH6bIJmZmwp25rM3ECSpn9B6ZBJiroDED5i Fdv+zJpe2SslunYiigrON1xxXRebh0EKDklQ2JsFjx9JelaYbO09/UVqKWWlym7S4TR6 L3pMxkjWBb489C/eFBF0gBsU8BiJcGuzSU3oK4WJxvx6n92I7zbbO7ADIgpAzaCR9l2t 3qJOjoT8tyMXD9YdW9vG32beSR4iFRCv6Zjlqyqz6cV7/UjqJ5dZ5UlT9AFMsc+YhksQ Vsx0QwOBg1XddqE0mrFq6l30vFqEYMuub9PNVKLczdMOSXrYF83yT1O2h/Mh9G/dhcSA ONQA== 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=wXdkYKKqhy/PeP38eGiAHfinlz29ywOf5m6iUAAWrE8=; b=h8YuHP3AMDA512IGsvbFAgxIUvyPfJCB/3OC0yeZ01BfNlCePZANX0FypKKwMXZH/6 64SsV0q9/Gz7ERFMcnOd5b6H0MJ0FMQDfIghHR7OQhXLmRLe1djjzW40ji88+s8ZUsTU 3DGB5SkAB0gJJHnKmEi92CHQZk5mo0GsYFF/pSfZUBijJWsWug2LSLGtcnp9B6VkUX4o naCgCRA8Znxs0yl072f1aMXq7Z6v+qkw8TOZiFTukLtLyfh5KHIbT5GJHD5RfOIXA87z lzfx4V6ImIUecfWzhdyvC+jycoLQ4psnUBPaYCYmM/LoXFiOE5naQOlURyFnG03AHq98 LMXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=vGvcqQl8; spf=pass (google.com: domain of 3t1osxaokcjiw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3t1OSXAoKCJIw9zD0K69H72AA270.yA8749GJ-886Hwy6.AD2@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 z192sor1755293qka.66.2019.03.20.07.52.39 for (Google Transport Security); Wed, 20 Mar 2019 07:52:39 -0700 (PDT) Received-SPF: pass (google.com: domain of 3t1osxaokcjiw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@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=vGvcqQl8; spf=pass (google.com: domain of 3t1osxaokcjiw9zd0k69h72aa270.ya8749gj-886hwy6.ad2@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3t1OSXAoKCJIw9zD0K69H72AA270.yA8749GJ-886Hwy6.AD2@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=wXdkYKKqhy/PeP38eGiAHfinlz29ywOf5m6iUAAWrE8=; b=vGvcqQl8zr5X3WM6Pnd+j7ESVWistQw68FAbZfGNeDxL4YYPJ+4OqqvXW7UJbff64S SyCyuCgR8FsxykYFHxZWggo7wmmKHcIn/zY2gfqkitnlkwmk5EXExr6QbsvFWToOM+WL QCPwgzhfuDbLfbS3Fig3TlGkfXqXtVQtp9TzZy8I9KwzBEdSIeS5Q5WHsyncfNZu/5vS Hr5mn91x0XP2yZ8L2TzmgWuRJtVdl+Dl6mGsDyEaHoP98pICbmRz6fkWzF4gQ2C8Nz5C XyxbkVWlsM3lV1CHfezqLixEZRPiaqZkNbdh+E/dJkMt88Sw8raDDkXlf+wmKYTUA72K gOgg== X-Google-Smtp-Source: APXvYqy01Tx4GR4P4j18wQEAClBXiiOkZilRtlYP4igDQPOGQlXjkic5cCk6gARehYogarcGTwIZa5tD2bxwI8+V X-Received: by 2002:a37:a783:: with SMTP id q125mr10967339qke.56.1553093559661; Wed, 20 Mar 2019 07:52:39 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:31 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 17/20] media/v4l2-core, arm64: untag user pointers in videobuf_dma_contig_user_get 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. videobuf_dma_contig_user_get() uses provided user pointers for vma lookups, which can only by done with untagged pointers. Untag the pointers in this function. Signed-off-by: Andrey Konovalov --- drivers/media/v4l2-core/videobuf-dma-contig.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c b/drivers/media/v4l2-core/videobuf-dma-contig.c index e1bf50df4c70..8a1ddd146b17 100644 --- a/drivers/media/v4l2-core/videobuf-dma-contig.c +++ b/drivers/media/v4l2-core/videobuf-dma-contig.c @@ -160,6 +160,7 @@ static void videobuf_dma_contig_user_put(struct videobuf_dma_contig_memory *mem) static int videobuf_dma_contig_user_get(struct videobuf_dma_contig_memory *mem, struct videobuf_buffer *vb) { + unsigned long untagged_baddr = untagged_addr(vb->baddr); struct mm_struct *mm = current->mm; struct vm_area_struct *vma; unsigned long prev_pfn, this_pfn; @@ -167,22 +168,22 @@ static int videobuf_dma_contig_user_get(struct videobuf_dma_contig_memory *mem, unsigned int offset; int ret; - offset = vb->baddr & ~PAGE_MASK; + offset = untagged_baddr & ~PAGE_MASK; mem->size = PAGE_ALIGN(vb->size + offset); ret = -EINVAL; down_read(&mm->mmap_sem); - vma = find_vma(mm, vb->baddr); + vma = find_vma(mm, untagged_baddr); if (!vma) goto out_up; - if ((vb->baddr + mem->size) > vma->vm_end) + if ((untagged_baddr + mem->size) > vma->vm_end) goto out_up; pages_done = 0; prev_pfn = 0; /* kill warning */ - user_address = vb->baddr; + user_address = untagged_baddr; while (pages_done < (mem->size >> PAGE_SHIFT)) { ret = follow_pfn(vma, user_address, &this_pfn); From patchwork Wed Mar 20 14: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: 10861945 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 7016B13B5 for ; Wed, 20 Mar 2019 14:52:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5C20A29DB4 for ; Wed, 20 Mar 2019 14:52:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4B40828DDA; Wed, 20 Mar 2019 14:52: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 C081929A16 for ; Wed, 20 Mar 2019 14:52:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 741716B0273; Wed, 20 Mar 2019 10:52:45 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 6C0166B0276; Wed, 20 Mar 2019 10:52:45 -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 5605C6B0277; Wed, 20 Mar 2019 10:52:45 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by kanga.kvack.org (Postfix) with ESMTP id 0BFDC6B0273 for ; Wed, 20 Mar 2019 10:52:45 -0400 (EDT) Received: by mail-pg1-f197.google.com with SMTP id e5so2900946pgc.16 for ; Wed, 20 Mar 2019 07:52:45 -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=f9ERttYki6e1riSpYQlVbWsSBMZZ5wUdNGpNySk9y5Q=; b=UYFdrapuIH3Vf2V9DKNiUzhJ+EJNizpIxDLjblQXwUO0kKM+vMwXjUoAze3WAqLihy VNztHmISYoY5yzSGfyJ30DdCxki071bSq5Gzk/LFl+eo+zce9+FtCzf1SUpE9asFlR5c sqfTrDQsrf32zDIQVwNV2KhMOcJMjvERI3wsBBysrLF7NYKz2pkEFM3kSO4wwpx5iM/X Pz4MZS+2NFXYe42chSKlI6ZCUi1xAxjmPr0/3sieYKEnnHgdkqQyJkzWisf/VS5Q6/X4 YDQ3vFKCKh6JJlTs2A8pAQuY2yrBS76Rphy73OXyzMve5eP/4g6nmc8hEFXENxYqUJN7 GefQ== X-Gm-Message-State: APjAAAW9QSjXO8sw/vOMRdQ9tiZGlv6TyCAUZJzOglh30S+XpqDLNh4I hLSs4nVvGgosb4dP8i/CvJig39gd9O1ovJZYq1PFYtJcpucC+tl3Y5aCd3+2Jtj01gzi0WGhuLY s9WzX8fey0YkC+xir3xKomVLM8/QLt8tRAC19aiwXtHwYJYiSLKaDsVVboUPEd3P9cQ== X-Received: by 2002:a63:b52:: with SMTP id a18mr7878045pgl.393.1553093564568; Wed, 20 Mar 2019 07:52:44 -0700 (PDT) X-Received: by 2002:a63:b52:: with SMTP id a18mr7877978pgl.393.1553093563681; Wed, 20 Mar 2019 07:52:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093563; cv=none; d=google.com; s=arc-20160816; b=PHQXGCLHFrU4sOvEuxZjpoC0V7BJ3ZuZa666U+htgKMGx66rFHFxHAhr9lmR9JfNjG iIvqapek0jX+tyDKRDwrdxtJGvIML/nBqYxIFY9mwNcHh4OWn4sY/JkoMm890cLPbEir 1deXO4jDUlmytP1JIQHi/JjIdr3wckNld5fComUmVSn4BVKj19hrWneXLxUM0+FcHwhn bbQkyQxl+YMBhvB7JJ83kKEvJ3VYKVTZe6gyY53fMD1BdRY6ioKIYMTm3IoO46ovmq/L p6wo9pvRt6g7GBEIF0F5cE2nQ6YJ3zEiapv+wrMwCDaz6G1sZxHGpu2lwPfJPPiWHuNu AXmg== 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=f9ERttYki6e1riSpYQlVbWsSBMZZ5wUdNGpNySk9y5Q=; b=TPHLQndA8pvw6mzEghAF+xRcxWlha7c6+TdRQccDiApVPdVAA3Kd+2kr6FSXq1NgSV Nij+sWdubay1rHUS4l/U7Dw6XCrI3SmDDcm4Eie+UkDKVYwYB3MvKlzcyUAyaWTt6sog xqf19754O/S5S7I7VO5xsqx2lqZYErHax3eEXLXdNnnG0jIPggwcOFvXXiy499QISbBd zfhwwDyEmpC6fSAG96szGZcyVBnjsQLUX7kwi6KzwpB6to5KaL/sticR93yQ45l/0zjl ni1tpxhTSbf/2fcVe0mn6ZKM59Td6KyompY/l7W0kJOagCTCXxHPuWCXGIezm63KfDHP m0TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=UEIrebSo; spf=pass (google.com: domain of 3u1osxaokcjy0d3h4oadlb6ee6b4.2ecb8dkn-ccal02a.eh6@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3u1OSXAoKCJY0D3H4OADLB6EE6B4.2ECB8DKN-CCAL02A.EH6@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 h128sor2526966pgc.33.2019.03.20.07.52.43 for (Google Transport Security); Wed, 20 Mar 2019 07:52:43 -0700 (PDT) Received-SPF: pass (google.com: domain of 3u1osxaokcjy0d3h4oadlb6ee6b4.2ecb8dkn-ccal02a.eh6@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=UEIrebSo; spf=pass (google.com: domain of 3u1osxaokcjy0d3h4oadlb6ee6b4.2ecb8dkn-ccal02a.eh6@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3u1OSXAoKCJY0D3H4OADLB6EE6B4.2ECB8DKN-CCAL02A.EH6@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=f9ERttYki6e1riSpYQlVbWsSBMZZ5wUdNGpNySk9y5Q=; b=UEIrebSocaYvFV95VdsGvR0rHtsKUFScYsCVqiArhFekiKhlWYwiMy63Q0mC7IZj9p 3mqU7Dbhm6OqOVB4ThhETYV9ikDo0pqEW49iSRluDE7bkzQRnUB022yUHTxms2owX+51 Hl02fMI+fjjQXXTnP9hJUKytXL22/eMlF/bW9F6Y2oo6WfEnYpRt49Ftd9iSm88pEvyR KMbIbd0h7q6Pew5AmmXiW7TnoUcvWa8wf/gj7ZnzJQoLjgL/IjA++G9JudTdsHLO21Cq CbofADar+N5IG2433ecku3GOiSdWNlbt2i7KcQfTHs/DmBtW8hG6MdXe8FPq3GsM/Hb6 HDrw== X-Google-Smtp-Source: APXvYqw7j6q1fx3m56nHOtW1Q2mzw9Sw141YoRGaaXVbYutXBT4BRu1TSW8d2p37GhTJbzzsOqgRxlx9WtXnbKVc X-Received: by 2002:a63:2ac2:: with SMTP id q185mr3933319pgq.119.1553093563022; Wed, 20 Mar 2019 07:52:43 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:32 +0100 In-Reply-To: Message-Id: <665632a911273ab537ded9acb78f4bafd91cbc19.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 18/20] tee/optee, arm64: untag user pointers in check_mem_type 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. check_mem_type() uses provided user pointers for vma lookups (via __check_mem_type()), which can only by done with untagged pointers. Untag user pointers in this function. Signed-off-by: Andrey Konovalov --- drivers/tee/optee/call.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index a5afbe6dee68..e3be20264092 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -563,6 +563,7 @@ static int check_mem_type(unsigned long start, size_t num_pages) int rc; down_read(&mm->mmap_sem); + start = untagged_addr(start); rc = __check_mem_type(find_vma(mm, start), start + num_pages * PAGE_SIZE); up_read(&mm->mmap_sem); From patchwork Wed Mar 20 14: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: 10861947 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 83DD813B5 for ; Wed, 20 Mar 2019 14:52:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6768D29DA3 for ; Wed, 20 Mar 2019 14:52:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 598F329DAD; Wed, 20 Mar 2019 14:52:55 +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 97AD229DA3 for ; Wed, 20 Mar 2019 14:52:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2F0126B0276; Wed, 20 Mar 2019 10:52:48 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 2C8166B0277; Wed, 20 Mar 2019 10:52: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 141E16B0278; Wed, 20 Mar 2019 10:52:48 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-it1-f198.google.com (mail-it1-f198.google.com [209.85.166.198]) by kanga.kvack.org (Postfix) with ESMTP id D727E6B0276 for ; Wed, 20 Mar 2019 10:52:47 -0400 (EDT) Received: by mail-it1-f198.google.com with SMTP id q192so2449383itb.9 for ; Wed, 20 Mar 2019 07:52:47 -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=cu+3rmCpd9l5R/y3h5ye/p2bAO3sj0NL49uODSAFDdE=; b=pQ36lh5rsR7vYRANwlWWltHGxgakZma4DtkX0c3HQqlHrq1Xgc54EmAADaRPGmKr+f 8ip5ZWg7Y8IN/9X/vYhyuix1NtFZ8QBcFQkowY8hDKU0qjYwajcl+jnjB+313H5v4d7r rJhYSbYC8Pi+VtNIZ4i0X9RXKcbufhQHdqnkfTfI9mbCrOhcY3W03aGKZgPQfgZPyo3S CaOyFzwIwwLX1FLazEBxkeDrt7D6ddx+kHLDi3LLdV9xmrE/6MEoUrJ8Ow0KSTF2HaMQ qdazpBmYE66D6ezEqh2iXvcPPZ9vrfUEV7tvIYYGPIQWXQqgI4pEmApdtoKnr9H884rF UX9w== X-Gm-Message-State: APjAAAUTn7By5QjIkDLVXZMkCmeu5AJM+8nArdiMd5Fm9Ojvkf/fpM0b lHROIZXocAX7qXmojYT7EI5fPH6BFEyntZM1SdK9sV+MBnbDHZSuLOCqU+C3xxBhaWoIb1ecBSJ LkTWlEir3v+Alma4ikxfZYq1Wm7nQlsbmEWrBobZvvWF553973nDQPhL4fgkmmc4M2Q== X-Received: by 2002:a6b:7517:: with SMTP id l23mr5715309ioh.74.1553093567606; Wed, 20 Mar 2019 07:52:47 -0700 (PDT) X-Received: by 2002:a6b:7517:: with SMTP id l23mr5715259ioh.74.1553093566827; Wed, 20 Mar 2019 07:52:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093566; cv=none; d=google.com; s=arc-20160816; b=hvealJLKJD9MkkPTPjdnoON03xtm+y5Shsz6G3rEwUlPbyJUE11l1vjq5YyvTRD/BO 6JDPmIplkS5lY7STZJ/W/wxEwYTjGaEnBU4W6BUqXxAvYmpndkwaB7BhItFmndD7/vVG yfcRN07KbRjJ7IA0hPUSB0PmS0vb7wXn7ZLh/7dn7weOZvBfPK5HBA9VOBERKb/ZcxZc Q3WXOeYHKohQZWdRbSeknM7AMAznH5gmdlJlQFVBCB7Yoz2gpPVgYxG1pCt34813HC0O 9fpx4s5WHuZ8epX6E7pQovNIP1Kgln1MpoKEoYS0WA9xsEtiUtCGRrMBFUTg/K/8jp6l rohA== 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=cu+3rmCpd9l5R/y3h5ye/p2bAO3sj0NL49uODSAFDdE=; b=ysvZw5W+o46LQiJbRXDhofATcsX+7WhgmyU2UnNzrjlirf8MKJrhXOeccF7EoxbFuH x1ifxgxjpTpIhztaD7kuk/aRr+NUC3RKTs/LE2gNr5xUXTZXJXkpSx2lb6sbQ+SNfcqH QuVAWrSaFMInOG9FnH8x5xnPvQ618ITRa/UzmN53Wa2w7y4p4AO+2txli4hJJCz7Kmlo zwyCFEPVJGUxn68qxh1OpDTxaHQf5aVKGnbVJ0TNvmrj1HjPAT2eniPX9+oFofNSs33x IfV/jlCdve/7JJLYCWyE8ah4vXlTeJyMypDg+gqdQVVyKuJJ0xp8SiUThtoioFKCNqoP JqrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=qURJbhCG; spf=pass (google.com: domain of 3vlosxaokcjk3g6k7rdgoe9hh9e7.5hfebgnq-ffdo35d.hk9@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3vlOSXAoKCJk3G6K7RDGOE9HH9E7.5HFEBGNQ-FFDO35D.HK9@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 s5sor4472485itb.19.2019.03.20.07.52.46 for (Google Transport Security); Wed, 20 Mar 2019 07:52:46 -0700 (PDT) Received-SPF: pass (google.com: domain of 3vlosxaokcjk3g6k7rdgoe9hh9e7.5hfebgnq-ffdo35d.hk9@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=qURJbhCG; spf=pass (google.com: domain of 3vlosxaokcjk3g6k7rdgoe9hh9e7.5hfebgnq-ffdo35d.hk9@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3vlOSXAoKCJk3G6K7RDGOE9HH9E7.5HFEBGNQ-FFDO35D.HK9@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=cu+3rmCpd9l5R/y3h5ye/p2bAO3sj0NL49uODSAFDdE=; b=qURJbhCG7KHqBQdB9/tW98IIzZBOYUsNCATGgXe4awlobm2aNwlvzelxDOnoumvmrK b/mIN1JLFUKKEWmVODg3dQknY4u8cwFqoBa4ozFLzZZmudKVb83CGFLq+FRv9y/TTY/5 rSAaXeLT2zCRImT4RVHFaAYM6bwxS8DucSU4cUJk/3I0DGhDXWwcI81c67HCNpygji6O BQV4zKGeru6kOZ2vSpeEayFmHj/NHgdIhgoL99CR9cRbaTnADs3WAujfChTy8IoPizRb Mdk25Ol5EHmWTCbmZlyFv2SlYAe5UuS3bv3kmLeOg32bRFdSdDmDonpBZBZt7FJH+Ous ilbA== X-Google-Smtp-Source: APXvYqzqObcBEgYzlcxCxTM9fSSNzVasJ/zSQwN6PhFl+/lgxd7D8DoZLa9+GTthl0M6pkpwMktv8E+fN9uDrpLf X-Received: by 2002:a05:660c:68d:: with SMTP id n13mr4682397itk.24.1553093566394; Wed, 20 Mar 2019 07:52:46 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:33 +0100 In-Reply-To: Message-Id: Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 19/20] vfio/type1, arm64: untag user pointers in vaddr_get_pfn 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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. vaddr_get_pfn() 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 --- drivers/vfio/vfio_iommu_type1.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 73652e21efec..e556caa64f83 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -376,6 +376,8 @@ static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr, down_read(&mm->mmap_sem); + vaddr = untagged_addr(vaddr); + vma = find_vma_intersection(mm, vaddr, vaddr + 1); if (vma && vma->vm_flags & VM_PFNMAP) { From patchwork Wed Mar 20 14: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: 10861949 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 8815913B5 for ; Wed, 20 Mar 2019 14:52:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 69B5228D58 for ; Wed, 20 Mar 2019 14:52:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 66C6129DA3; Wed, 20 Mar 2019 14:52: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 A189828D58 for ; Wed, 20 Mar 2019 14:52:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 90F6A6B0003; Wed, 20 Mar 2019 10:52:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7AE116B0281; Wed, 20 Mar 2019 10:52: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 5B4766B0282; Wed, 20 Mar 2019 10:52:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by kanga.kvack.org (Postfix) with ESMTP id 1ED316B0003 for ; Wed, 20 Mar 2019 10:52:52 -0400 (EDT) Received: by mail-pg1-f198.google.com with SMTP id 14so2893230pgf.22 for ; Wed, 20 Mar 2019 07:52: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=SY+rnApq6/oVhWiUcTCOnBf6TcIl5V0rPtZOMhbp5Gs=; b=jXi2jeYooV/qCSR4Qs1DXrgKH5u+8lvQy5Zlam/3NIS2N2UAJQ7x0nYN19O/QNzhpo 60Mkd10/VDEPQK8uIZ6vSGEugK0EnmmQ4KNRtmjMxfcAeqvUFEh4fwjJHyq2IHg3LQ8H HmTxPHSSewbPOsvNPBdoHFGiPX9q4FWLW9ygqI1hp49QP4Yr6Qy6658++Tk0c1rX1gJ1 qdnb0I1bmijiKeVcR+1towa0ina3EUIfg3UKwPgLQdk5wCZOfWaOHL6M96aRiXXyPKY1 WeaRULtoL9edilbEFSmWtZWcWzYPShhZsF0X4ZoZmMTsUxOIiolu9upMgt3px2FMy6Ku M/lg== X-Gm-Message-State: APjAAAVy84+tpySMUQesL9JaOJ8ldYm6YGSbbFbbYUNONhdBe8I0OcA8 SCzG1D/lwlEiAKhbjH0r6i5eT6poUdzAOti5A5hdN4rzIvO2GBKqLUK+ndOmZlrCT0wRSzBTyR3 fS0uFLujzpbrN4k/61f1TS7KfRVkX8eYSWDKghcYVhDVli0ESbDp+MoN1zTZHTLBddQ== X-Received: by 2002:a62:168a:: with SMTP id 132mr8463974pfw.155.1553093571619; Wed, 20 Mar 2019 07:52:51 -0700 (PDT) X-Received: by 2002:a62:168a:: with SMTP id 132mr8463908pfw.155.1553093570477; Wed, 20 Mar 2019 07:52:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553093570; cv=none; d=google.com; s=arc-20160816; b=eB2KnjveIrFoXZ7okFYJ9FGE9kbg6KsAjIN5F+9EQFPAkGbAEUX03iNIiG+75WwpzT WUf6qT+XwzhNZpU7QfVjuOp6yIB4LHQb+52aW5n0k4FkqINAxWaOyMnPFouvCWS+dRrs lL/BLFNY3j2UaS/Z2r3gKYafvRk+PWw48cdX9wGs2N3qklNtbOKNIN7KU2vbzNfIJZC+ fMOtdy0GDQimwHdxq857n5VuGWyB995Mz3UZ1VRFtZUZjwpaSRaShyY8UYfQEqKuAVG3 nJxWOQJFHSMFYIUgTBLn8b6kTYYZmC7asPTedFifWXJzT5B3d9O3Ai6Hrh6fQ+pjVcYC ROWQ== 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=SY+rnApq6/oVhWiUcTCOnBf6TcIl5V0rPtZOMhbp5Gs=; b=YsVCmbNiYT1JBcH+zP7b7m5Alf3kKjrpUKjVLs3IMi7WjXbHFlTjzRBhzxz8qHe3CM 6mrV+rLpmf/lXTGCUI6FwHb2W0qqeeGUBQLDcLLSOvu77pLAZw6PNKNuihyt7l9FsWvL jp/NsYsWCeiGyUxqilGXFiiWFiHGpb+UJtZhk1Bzp2/29dGqf7LzNx/TEU+vmOwjtqcw 7YTcCgcBYnxn1J4/UY2g+V92wxdvg0Gi8dVD3ZfdIb6OIfP9APoddqKzB39xjiGbLZ0u mkRi8W7cHsyjg6YvIaVNfu4KUcAXnrTNHiVaUVDKwA3PQrA1sbjzltRwPphBrnB+JmKq sejQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="qoeAL/PT"; spf=pass (google.com: domain of 3wvosxaokcjw6j9naugjrhckkcha.8kihejqt-iigr68g.knc@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3wVOSXAoKCJw6J9NAUGJRHCKKCHA.8KIHEJQT-IIGR68G.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 x8sor1330257pgi.26.2019.03.20.07.52.50 for (Google Transport Security); Wed, 20 Mar 2019 07:52:50 -0700 (PDT) Received-SPF: pass (google.com: domain of 3wvosxaokcjw6j9naugjrhckkcha.8kihejqt-iigr68g.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="qoeAL/PT"; spf=pass (google.com: domain of 3wvosxaokcjw6j9naugjrhckkcha.8kihejqt-iigr68g.knc@flex--andreyknvl.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3wVOSXAoKCJw6J9NAUGJRHCKKCHA.8KIHEJQT-IIGR68G.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=SY+rnApq6/oVhWiUcTCOnBf6TcIl5V0rPtZOMhbp5Gs=; b=qoeAL/PTMnTmhgXnl3RGCTw81JMF7TMbNpbYC6F1pr3TGPdCwVaIeU85uj/B77baMA VAfUOVehMewxrlPBnMcvR10msEYwYWF8Hf58msk5Kne+FBqRyuY30tbXpt8IkSkZrha9 BopC5S+Fs8co9IFKm2kvowWttr/p77PwwjO1CLveVN2yF4PwY74t43GhYeQZYNqL2hkb Lb66rbH+aemh2G4/5BTzrD1WRMcmhL2lokvByiGUsVSSzbRXBf7wNtl5qMTt1G6arf7d 2SGd6xj3du+G5dFYrDQjaku3ogveIBZkyDoiC7RnaR7D3ZV5QwX7GQmkBx2mnQVW5OQ5 WLOg== X-Google-Smtp-Source: APXvYqz6JBh3VPqVViw3H16uoW27hFqlC/o1l863wBn8e7Vx/uAhxhmqW+NafnSe+CxZM3eW2zA7LqhlL1qr07K2 X-Received: by 2002:a63:5117:: with SMTP id f23mr5792228pgb.3.1553093569898; Wed, 20 Mar 2019 07:52:49 -0700 (PDT) Date: Wed, 20 Mar 2019 15:51:34 +0100 In-Reply-To: Message-Id: <60757dd548eefd5cda129c73486dfac5e838084a.1553093421.git.andreyknvl@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.21.0.225.g810b269d1ac-goog Subject: [PATCH v13 20/20] 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 , Alex Deucher , " =?utf-8?q?Christian_K=C3=B6ni?= =?utf-8?q?g?= " , "David (ChunMing) Zhou" , Yishai Hadas , Mauro Carvalho Chehab , Jens Wiklander , Alex Williamson , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-rdma@vger.kernel.org, linux-media@vger.kernel.org, kvm@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; +}