From patchwork Fri Feb 22 12:53:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10825879 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 5220C14E1 for ; Fri, 22 Feb 2019 12:53:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C4F93242E for ; Fri, 22 Feb 2019 12:53:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2C13932459; Fri, 22 Feb 2019 12:53:38 +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 C26A53242E for ; Fri, 22 Feb 2019 12:53:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4798F8E00EA; Fri, 22 Feb 2019 07:53:34 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4048B8E00D4; Fri, 22 Feb 2019 07:53:34 -0500 (EST) 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 233548E00EA; Fri, 22 Feb 2019 07:53:34 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by kanga.kvack.org (Postfix) with ESMTP id BCB9A8E00D4 for ; Fri, 22 Feb 2019 07:53:33 -0500 (EST) Received: by mail-wr1-f69.google.com with SMTP id e18so961806wrw.10 for ; Fri, 22 Feb 2019 04:53:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Cci7ZilHiWLbA64Mc6AMOu/bLCyx/LwY/bSfReud1WI=; b=lw6VOv8AH3zhHuBo24fiKCzdf3asevK0HfIYwPBgxv153GivQXHw9G0HLKRgKuPGDy VOZot3wXpaEIG5Lt8zwv+RamFn95TkDoJUOmg5PjF6weR47w+d/WmD07OFuRFElaq0Dw wW3Y1f+3Q1CXf6tnOV5E4qkGTYBiswi5iyjx/cfOg09PxmAnqZaGWMSxrBhikyGmOwro xG1Vn1rtewbIQivRHSj5qZtnr09RlL9uFj+lmRPiOOuuoBfPvxPcRRcUxpgiJDXG37KX qeXNi7Nuc92Tc01X4VSRNqknswHWT5/6vIKL14bZfJHlja7Zto7Sdaa8PVMaUAAWU+Zd 841g== X-Gm-Message-State: AHQUAubvH4P/prd+TrO0Mzgy1nWDKajDT6zKlkM3dRGJERWbyRAuufX+ y2ID8nF/6bsIX9ebOz4va2U/2+Rd8QucGBEvpIKy0zD+r1CG0bZQe21PMI/4iOEnbXAQfnVtouj iywDsxCWIGErKtuAYSd1GwJgR4kdnm2dh3B9zIx//vMsgoGyttgZT+aflomWf18mMw2TDvljcMc KwdmecabhIJwf16h2HkFYqq/pE5YIR4jKlvpkDBnbwy7uxaz9HUCWm55gDd35Q2la7nx7Xioaop 3iWIiZPcsE6PFsPd+7SiQHDZ3fK2dLz0EcDODii1U1MTZHwnb4HXurq1u5CpHxLjpXRlBMhZh3G 688dvF/idTKOrzAnTdMHXN3DrBPrdIgFaQo1bN2TMtpecV/KGx3VbJXM5V8f72ayqqnQFDHKX7A Z X-Received: by 2002:adf:e58f:: with SMTP id l15mr2071353wrm.309.1550840013317; Fri, 22 Feb 2019 04:53:33 -0800 (PST) X-Received: by 2002:adf:e58f:: with SMTP id l15mr2071301wrm.309.1550840012321; Fri, 22 Feb 2019 04:53:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840012; cv=none; d=google.com; s=arc-20160816; b=nTjXHoABwavalTZoVy7+MvHBDwAt9v2MPBY79YiO1JjcQs+hROYxta+pjvA8Mj/XA1 qmVUcJ0AKcXdWp4m8XsgxCgLnS3nBcJrUiTositxPUP/Iaw8zT8KCBBl4FkzrSKtGpa7 0HqsB/TKdxYVSlEb+4Udf7ver2NVQ1BtNF6MtS1IMKh2hHxSvs5cNsvRAD2jCLn7CYp/ IfF57uFtoKD4rhaUDrXdpHXo/l2dtulryEwWOA095d4JWCcyxq5kwKc+wrDrzl0wTwpb 3NlyZiJB7oAuzRAmq7Z2chVkU22PjdPCoO8IGCg7VKZkeYJmEj4wWqI83zJM4PXtlpsm KZGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Cci7ZilHiWLbA64Mc6AMOu/bLCyx/LwY/bSfReud1WI=; b=HOKEGhYaWUsyr5D9U/UHU/1OFYFzWcXPnMMLPXciHhZ5y00dBsAWutjwxhMKkiAn3n 2Q1xKApXtC9660aHJ2Iu/0y8KzcFxuoFSuZqCtZXkeHaEKbT3BPwcL13LQ4GjW8io48A V7fr56Uz5a7WaA/44MftrM+l2txvq5fWjBu4LSvmakKGHnISTLd+lLR/ZGjC0OiZb/Lt I3VXmeIz0jKKJZ/VYVmvOT4hZCz2cC0SRzuQBz9rcI/tIp0Iwt9UPAs7WPsUo8ckh/ot o1wSQ84fiTPMuV8NWWiZVbUiA2/aFJnlxyE4acEX71ldXSJf39b6cGcxlpHv3RX2MKL9 xGsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mN2rwWcX; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id v18sor1097784wrn.45.2019.02.22.04.53.32 for (Google Transport Security); Fri, 22 Feb 2019 04:53:32 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mN2rwWcX; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Cci7ZilHiWLbA64Mc6AMOu/bLCyx/LwY/bSfReud1WI=; b=mN2rwWcXbmXv4T54C8g+dQZceONkqeqfDnfFBkdS/1z2f+11756LZtilFVL9vmN8Ub asXmJYdmjDVQkCK9dtCydjOWxr+KWTUU0EEaMipiA+1WfFsqs10CUXUyp5B+yuljcBc1 0C0tywzNl+KEsDi5E1V9a1Ws2dGSyCYbuw6oXbdAfIH3UZ7l6SUpfEF4GcTbMbPCNeeB Ot4+ZahceUY35FVe2YDPYC6Ax0ARG1yKOQgJNw51FBiolm56hh/XyUho+qccTDZViTri rRytDOGFcggeSEQD/tMlfRQXS2V8i4wpp47+jYCO3tkhuGYSljzEFFfYn0oW2evDAak3 2ugw== X-Google-Smtp-Source: AHgI3IYNE5YTD6dA2Rm0c87bwvFj8qPgC6wZI8wCmOm2tGxzmyo49L1MzMubdg2VCbScaD+W4rhlpw== X-Received: by 2002:adf:f6ca:: with SMTP id y10mr2869999wrp.148.1550840011806; Fri, 22 Feb 2019 04:53:31 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:30 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 01/12] uaccess: add untagged_addr definition for other arches Date: Fri, 22 Feb 2019 13:53:13 +0100 Message-Id: <2b5a5d7d7a36a75a2a796f0c2b9b30669d81d470.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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/memory.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/memory.h b/include/linux/memory.h index a6ddefc60517..fc383bc39ab8 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h @@ -21,6 +21,10 @@ #include #include +#ifndef untagged_addr +#define untagged_addr(addr) (addr) +#endif + #define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS) struct memory_block { From patchwork Fri Feb 22 12:53:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10825881 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 EBA711575 for ; Fri, 22 Feb 2019 12:53:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DABDB323D1 for ; Fri, 22 Feb 2019 12:53:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CDBFF32464; Fri, 22 Feb 2019 12:53: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=unavailable 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 4C7B4323D1 for ; Fri, 22 Feb 2019 12:53:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2C058E00F9; Fri, 22 Feb 2019 07:53:35 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id ED8C08E00D4; Fri, 22 Feb 2019 07:53:35 -0500 (EST) 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 D54D78E00F9; Fri, 22 Feb 2019 07:53:35 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by kanga.kvack.org (Postfix) with ESMTP id 7CFA78E00D4 for ; Fri, 22 Feb 2019 07:53:35 -0500 (EST) Received: by mail-wr1-f72.google.com with SMTP id y1so951741wrh.21 for ; Fri, 22 Feb 2019 04:53:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=LYedl6oW+X0hODfB6yBlRZE+wsBGKemR/gV1w08gXes=; b=s9qax6D7f62vqv7wB6XORI0WyWlv/ZBJKDbSwm90IH4zEMmRa5ZDl3Cyj/Sy6vWEC6 MdpRapBfmzqheF3jKA0slqrubpWs+cU2d2BcYN6ELikL7kXICbcbPubLDnau7ob5DjaR 54gf0Gr3lVsBNbihDYHvnF8N6wZW8Zqv70GAqcdjucFBgm2/kf6A4//EWaTdc6shR38A JV/THrTKE3+I2ISt5IHAwq6vBaawZq0u13JgSYhrEkkdgNCvTs//r/x1ptklUo1SYkbr PaGjAmhvzMvHj2inBl4HxzqqItDFZCe5fN44MG06WuLc+wFEohHo38x6Gp2P0N+UFoGo 0QCw== X-Gm-Message-State: AHQUAuauD3E8eBk+lzjahJB31X7q8ReCRkvrTMnTq0CxkkG5BXm0aRw2 CScUL0y5X5n0/gD2Op+S8W0KEBqbmI3KHHzIr5XOjQc1QQMvRX5V1t7rduC/ptwHpPUuhKMWATS owZ7mswzreqhm3BxqkPuSyc1BaYISudmvxNtJqc23IZJx92au+wrjz8QMQWiFHVOmIRqta2MuiW new3ZmZl/Zx4IOTpR/gGN17uYWMDMOySteUzDd37c28tFkwq1jqdsbS/VEQ/AkbeoOvq/gishRt O2PM9pcGsauumpuen9kHPctBuDQhTBzGE7oigcW0bosXFkKvLyqitLBYPC0ZRKz39565gpfm4N7 JS+sjAiwUR2w3qd1FAUGFdncie94YI5eXiAaXSumNvzZHhJYP2N/VZQBhtXUDxEekjkCkON1haM Z X-Received: by 2002:a1c:dc0a:: with SMTP id t10mr2442511wmg.101.1550840015026; Fri, 22 Feb 2019 04:53:35 -0800 (PST) X-Received: by 2002:a1c:dc0a:: with SMTP id t10mr2442473wmg.101.1550840014233; Fri, 22 Feb 2019 04:53:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840014; cv=none; d=google.com; s=arc-20160816; b=a1g3Zj/rjo2aVEVf36evF8p7QxRqesOQvYe/+5xDf1SSy7fofax/hoxkrijJZqHULP RV5xJ3LRYn/sgRsRV+3bhx35eUmxFZrmhqc7Q5/28QLbuy1CL9ACzK16L5R6k3CKS0W7 jkPM+XGxQNSDfDlM9C0bqArt1NJRgbNGIpaL2+VHfg3m19VB63v9bPmZmYh8u7cCJu65 n6wrxR+9HCYnmOSBuZNzDe3IAhlHfjKyBcTWJkuvNn3BTReYpsGN1fEr9KB03hldRfLg x/vw+pU2ysI0b17yEJvrmRGfM/8605wWGHqTlX6F3rxny6HGKfH2pVHGxhj+uxt3Juve FV6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=LYedl6oW+X0hODfB6yBlRZE+wsBGKemR/gV1w08gXes=; b=WQNvRVsacEq5zwTn4pJHq5IdJpMWVgAMBF+UUV14HG2bqR2GNFTyg+MrBj+AXDDhAB DFcCN7QteDxnkjUmEHxE3q3h/kstmNW8VEj6JyNHChbnDR5CY9y+IcGTIJpLwrYaCVu6 kdjPsPWOFgY9Qb5uZC8ZrePOoDfjec9amfBtzYSbTANxVMuNIcrE78HQjVBYs2RmvDm0 9KaGgUhEg8R0tf9+3d+FtTAuDWcI8A44UPwvEXI1JX59BRAMjfQok/QDsEkq5SZ6oM+5 bhILzSIUldD1SZWcGYAbRlBUOvmMOkHbb0OMT+acJGpbaXfgIlbJhC+xhwNB1Mb/Jfs2 55bA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=IZO5qs1i; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id f7sor1108276wrv.24.2019.02.22.04.53.34 for (Google Transport Security); Fri, 22 Feb 2019 04:53:34 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=IZO5qs1i; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LYedl6oW+X0hODfB6yBlRZE+wsBGKemR/gV1w08gXes=; b=IZO5qs1iTdFS0J8b6mUPkT96MHj4TvOOl4p+NkYj+K5QoPzgtV+ykf7Zu+OkLcqN2H XG3Gh3bG0jBem6M7NTIzz/wK5zl+vCUUNfkfJALSmU8Wj9A1u4sBy3ay4BW4/EmB0HRO rjkA4MwD6TdBTXlf++HuBJnMCfJk5iZzI3+4sXCvRuZvNLxSnSX00w7f+r2eMb9tbUeZ wKQkxlkxUte2ekBF+Cqk930FiD2BqGhYurasbJZ5Cy6szPm8dYUDDnFl+i7USfSEW4tE b+242VIYnFJCUhKNVLIKvM7y8Jwt7Fku92E8DCxmA2ENAr03DmnPf5Nks+jfBd0lKf0N y0ng== X-Google-Smtp-Source: AHgI3Ibs8M2cAwjQZj6orbXxkxYi8LGidQwEOKdpOteZ9oefSzL6DNYvYhuV2aOjewxHuzIPLDjC/Q== X-Received: by 2002:adf:e90b:: with SMTP id f11mr2972186wrm.36.1550840013762; Fri, 22 Feb 2019 04:53:33 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:32 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 02/12] arm64: untag user pointers in access_ok and __uaccess_mask_ptr Date: Fri, 22 Feb 2019 13:53:14 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 547d7a0c9d05..9b9291abda88 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h @@ -95,7 +95,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) \ @@ -227,7 +227,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) @@ -235,10 +236,11 @@ static inline void __user *__uaccess_mask_ptr(const void __user *ptr) void __user *safe_ptr; asm volatile( - " bics xzr, %1, %2\n" + " bics xzr, %3, %2\n" " csel %0, %1, xzr, eq\n" : "=&r" (safe_ptr) - : "r" (ptr), "r" (current_thread_info()->addr_limit) + : "r" (ptr), "r" (current_thread_info()->addr_limit), + "r" (untagged_addr(ptr)) : "cc"); csdb(); From patchwork Fri Feb 22 12:53: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: 10825885 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 7988213B5 for ; Fri, 22 Feb 2019 12:53:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 67D52323D1 for ; Fri, 22 Feb 2019 12:53:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B4F032435; Fri, 22 Feb 2019 12:53:43 +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 EE55A323D1 for ; Fri, 22 Feb 2019 12:53:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 56AA48E00FA; Fri, 22 Feb 2019 07:53:38 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 4A2848E00D4; Fri, 22 Feb 2019 07:53:38 -0500 (EST) 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 234898E00FA; Fri, 22 Feb 2019 07:53:38 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by kanga.kvack.org (Postfix) with ESMTP id BBD658E00D4 for ; Fri, 22 Feb 2019 07:53:37 -0500 (EST) Received: by mail-wr1-f70.google.com with SMTP id j7so956711wrs.20 for ; Fri, 22 Feb 2019 04:53:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=PKTXMuuFJ0ycWRkeXV5y91b1obeaiELoxpNU31S68XA=; b=Pgokf7fYe7g0b+avDn0r9/XgOMH4Nf5iXDollmI+UtRnyVeVxpELNSu9zNNG5x2vcY ifC8bYevAXvuCPW96CXXC9RPDMOjVghg9iJ1matffFJppVZmA+ZInbJOAQohiLljr80s 7iEW+7UzamK1EpbpcpJ5ONUw9VUPW+OBvY83gWsbVguDwAfdpjbERNoOFYv380ksb2Id CqBAYXwJW2IuEYflpqSE0ufyN7GpOUM6TyWqSXk2W2Ogtyi9k0ZOdbq5txCgU824S+bu LveZPu8Dw2JiLf2rJz9von4BNltv8vS4xYGhIkG4gSEaHsZ1Zc64cjZbM5hGZOpq3/9g E1zg== X-Gm-Message-State: AHQUAuaQhCQeCwC/qTUyZp+pvV9y4cssgDsCe7bhnvUb3hVPCM9G5HP9 honISdIC1PaeSUnWyxydUU8NNchTABs189QW7YDrqDViNHNNETzIWCIJYIM9EObnWW5jmE6FSka u6n9h0A3cMYK1Ngh2QGmskecL/98y8gae+3WAVsjs2SX0pRpa9lPS4HQaAj0kLKi06Bb160lqfP a2lWdh13XbfRCUlA/mavx9WHmPkNwgEu/XA5tltFseOMfQWtZfaMkbvFwVt8X3IwSPbcNv/RHez /pcrx6GdzoZnN78gobQy1etAeNc/SJeuA8nN0K5AwUL5RFu01BbhJubc0CvV4qdglVnevW248Aw bOusi/s0b9IDJGqgulUpnYJDWZK39ya/ZzpdpxfOz7tkzu+C0fmN1rlyGTsx114MljEOCYV2TBa P X-Received: by 2002:a7b:c04f:: with SMTP id u15mr2319647wmc.49.1550840017283; Fri, 22 Feb 2019 04:53:37 -0800 (PST) X-Received: by 2002:a7b:c04f:: with SMTP id u15mr2319615wmc.49.1550840016442; Fri, 22 Feb 2019 04:53:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840016; cv=none; d=google.com; s=arc-20160816; b=w5xLb8+aTULUcoeNe1CAoTQhhIjPTB7KISvu1legTRhtzBw72tIH3K9DmdqDpcNUrb 45FbtPe5m4Ey9+V8zmzHU9zG8pAFuDj6INtZpxSw9QJ8X48KFc+dhiIxpXAtEduev5WH Yf1EXBkOA3P/RNn9U8bPjUC13lbexrvgTCht7KHAVGpjqs18y80ySO9gI/lqzfEpf96f +KH6DeDx1AUir8/ABusl+5DirRoaVcmRKh6reaCfMTp3iDA66hzUORe1wkjBR/D+55YO +oo3oleRU33ZyQ8HWnjeunNu+m2N09Ripc/HqMFvmwkWCQl/J9/lqTC23dTxC5At1LIu Qn4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=PKTXMuuFJ0ycWRkeXV5y91b1obeaiELoxpNU31S68XA=; b=i88jtewBNtMcyOyNgplGHmBy2bE+H53VW/kQkvofY/tZYWO/YjjYCJtmTzIoYn4w0h VRiWewsk+MvVMt19w6Fo5I5D2znyqoGWWb5PYbzvTxlW60h8ASOWUgmp54Hp8KTcQ8Ax 5I3HsMkQxCFB9rFmo3PGNIKu5PJR64IAAF+WD3QQgGzHgvF2hlCgC2KAo0nc0zR+hX03 V5Vcfy/AWW+7+LlS8ErIuabYgr5gJrhH5ZgW3MH2tpKIswiws2+Ba0WJEaQAf955YgXT 5OSLSm82ZSjc3xlI3ykr7xvl5Hc03L8L5sFevkxlzyMlll3qAInkf+Sh7XbgLW27qwYY TFgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=FaiH8DNH; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id f193sor923555wme.9.2019.02.22.04.53.36 for (Google Transport Security); Fri, 22 Feb 2019 04:53:36 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=FaiH8DNH; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PKTXMuuFJ0ycWRkeXV5y91b1obeaiELoxpNU31S68XA=; b=FaiH8DNHehCmj69FkdBo6mXbqqulK/U8NyRCwUPqCoCXisYnu5gQCGM5mMgF2o+r5C Q895ILkegF7YVy2vFzwoQsyu3DHKrS7Js60oUmj3EHAuQ3lDC4dMnGfkMJZ62pMapL+k xytmFOkCQHvp0gNluVOkEqXFJhXzhLYBgN2pDRZLIp1yIz0MZnbqLpN529eBLDmuCQ7L aRGgYK5N5Bf8jKNgpzLn0LgSmAlL7MWKlzzgbhspTRp7qG3c5svcptnL3y0tn8I+xiVR fsnSCnDs4Y6Ma8rGFmML1DTnS0qu8iSEQz/qlVoGNtR0rlFccPGC+6s/xVUFiGjh1uzO Tj3A== X-Google-Smtp-Source: AHgI3IaT3TA/4v9Ai1qhl8SBylCTupXNiKIcUjrbtqaeD8Hyvt8HixWPqJY4f8llGtC/USwzdYOlYQ== X-Received: by 2002:a7b:c115:: with SMTP id w21mr2545389wmi.104.1550840015942; Fri, 22 Feb 2019 04:53:35 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:34 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 03/12] lib, arm64: untag user pointers in strn*_user Date: Fri, 22 Feb 2019 13:53:15 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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. Signed-off-by: Andrey Konovalov --- lib/strncpy_from_user.c | 2 ++ lib/strnlen_user.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c index 58eacd41526c..c6adfad39016 100644 --- a/lib/strncpy_from_user.c +++ b/lib/strncpy_from_user.c @@ -106,6 +106,8 @@ long strncpy_from_user(char *dst, const char __user *src, long count) if (unlikely(count <= 0)) return 0; + src = untagged_addr(src); + max_addr = user_addr_max(); src_addr = (unsigned long)src; if (likely(src_addr < max_addr)) { diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c index 1c1a1b0e38a5..26a6a2a1a963 100644 --- a/lib/strnlen_user.c +++ b/lib/strnlen_user.c @@ -108,6 +108,8 @@ long strnlen_user(const char __user *str, long count) if (unlikely(count <= 0)) return 0; + str = untagged_addr(str); + max_addr = user_addr_max(); src_addr = (unsigned long)str; if (likely(src_addr < max_addr)) { From patchwork Fri Feb 22 12:53: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: 10825887 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 6B60313B5 for ; Fri, 22 Feb 2019 12:53:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 56E1E323D1 for ; Fri, 22 Feb 2019 12:53:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A91332435; Fri, 22 Feb 2019 12:53:46 +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 984D1323D1 for ; Fri, 22 Feb 2019 12:53:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8734A8E00FB; Fri, 22 Feb 2019 07:53:40 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7D2C88E00D4; Fri, 22 Feb 2019 07:53:40 -0500 (EST) 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 629368E00FB; Fri, 22 Feb 2019 07:53:40 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by kanga.kvack.org (Postfix) with ESMTP id E2EE18E00D4 for ; Fri, 22 Feb 2019 07:53:39 -0500 (EST) Received: by mail-wr1-f70.google.com with SMTP id h65so957372wrh.16 for ; Fri, 22 Feb 2019 04:53:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=RU+or7OE+xeHtjxzNrTm9G6GbA97mBxvO1lEjBNgYI4=; b=sDZvJ7JMiy7Zm85CM0HakcQhxdddRSDG+EzBsCVWAl9wqLsznYTL8YOfjC0s6Rctez Vn+tKip8IfQvzhdRUkADjrpliFcpP8n4Q3AEukgV6M4ue7l/l3tXWR6+YA1qA3/WikHl kD0b0anXD0lLUSDWCEoJlGWIzpCZKXzvQweb8u+8Z6NhA/GdL0KjiYWd3qj2ztkfGdyl PUCWSF0DOWagITjcdC4R+eLh/HIEweNBUuvcjOWt9mTNQ3Id5HcNinNhW43mD2IRB8b6 oNi7JhPhmpCKrEooWhs4h8mZbBlXBsgZld4iTMmKVOR4p3OXrnygOQt5X1Qx9POSIHs8 wJoA== X-Gm-Message-State: AHQUAubFSthILZVuS14OedRrakpMGKCe/Ek+YpwHVeUKBvOlODj6DIgJ lh21vS496vFOKSkkZgbp7i77fMaJq+TKrHtpCz+E23uOOn+Xuxy7+3IaM9h76nYUfPSTR3Ul9p2 Txs6PdZGxP3b037y7oTFqNYWH7PM8tuE0IaliiO+DoJODJUwQJ/0H/7SEn5qgKCEvDB+eWzJd0c prIwXf0FFjFN/Iwi6rp3J3TJWORptBKvnaSRTZhN4b1y3hGAzJh7jm8s6wJXtM6CEcZjwjiedMH elDsDQb4LuWJtSJfiJWJwM50qY2mQqYUvpfWH6b/jlynayS1aPRMUrxSwXNwUxDw36AJl6y2ieR 2YctMvdPaHZOBMckamhdoeTvUNKuXt1rKPv7UNokdBBS1TM3MKNqQNGVuIOx8LOxz4R87MZ/0RL 6 X-Received: by 2002:adf:8068:: with SMTP id 95mr2939936wrk.181.1550840019446; Fri, 22 Feb 2019 04:53:39 -0800 (PST) X-Received: by 2002:adf:8068:: with SMTP id 95mr2939881wrk.181.1550840018400; Fri, 22 Feb 2019 04:53:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840018; cv=none; d=google.com; s=arc-20160816; b=kQGEJKmCtCB46YCKhRu79RRS8VExmrevoraiLljZCRb2NV1QlnAbOTLYtZRHXj7SGX fvbhIpOVeLRcuNSAum32o6935/+qersQZkslJ2blwkSn3dzDhYqzSj3rHTfibcslbB8w JMiVIfnEREhCx1OtCt7zeRcwyrioHZ3CNjKecTkfVrz6Mt9W9FO30Poiuxp6Jv6/W+dh L56mx7pu3slS38HQA6Z7g/NtTkqw93DAO9UfOlCKsO6MJOCLNT4/BSDuX+s6yuWNQhix u2qQRy4e6OAk+9s6Qo4aIQ0WFh68S2CHJR83kKSewN9Fu+RwHxBcmgS/1mI6sY0kLDME q2FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=RU+or7OE+xeHtjxzNrTm9G6GbA97mBxvO1lEjBNgYI4=; b=JtqIPwmdurClm6XRp9dhZrRVyHpiTZ0QfICq/kr6nVpsw49yevy8RvDy4rtk9xvFui Y32KS9iptHKO/dHfxJAaFI4N51m2vJc+KaYkTQYHlmbmB0EUkGwiuWwg2CkBfTNPT1U/ 7dO8DxxcTZ8Q26eSqNM2uGcvjOahQwytm7N8jklRz1fGWKLpIk6GVVLf2Dl/nn5AKjtv o/8HEYChnirl69JT15rkAJEkZhZ4x3OzQaLmOAJKPBVs8J13zhsQhG1DDM+6QqFarIv6 Sk1MXu4wmsZnI1+cuOwG6uOiLil8t8cQoMNsoCk//ZJYbVH7yr9if+VI406mhVpoM/Qd 5A5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=LNQKgdMo; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 8sor897141wmd.6.2019.02.22.04.53.38 for (Google Transport Security); Fri, 22 Feb 2019 04:53:38 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=LNQKgdMo; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RU+or7OE+xeHtjxzNrTm9G6GbA97mBxvO1lEjBNgYI4=; b=LNQKgdMoXLkk3vLgnA5PEOiEPK8fsk2VlYlLEiH/StERFEnr+McNBwQfGS9vvmjAMi QHTRwv032nohBRIotdakg7RO2p0g13+gcbIR/f7FS3M7GZntMbCdcTPNEc03llgebNcN A0xBE7hLwmM0ERnATLIP8CvfrkkQpkOb3O8KOUWOCCPwoN2j4oZKfYoZymy/mN+l2/kS hbDRlBHrLDPKxDTD4wcCjFAkP482/9puy/H3Ir4ZTTBolYjCVblrBDM0nO7Cb0lI7eDu hxtdRv+Oi1y5bBqs+F0RzEIPmxeQNS9IDhJoViWLDSaomrwJKnsrpHyIV8LLAV+1+HV0 9SoA== X-Google-Smtp-Source: AHgI3Ibb+5n0E6YRYhEsUNTW8xD300TNyoI4J/VhQut0YtmUKaRdSkhbzkgMSemHjOizIAIygUZsdQ== X-Received: by 2002:a7b:c84b:: with SMTP id c11mr2397913wml.108.1550840017928; Fri, 22 Feb 2019 04:53:37 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:36 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 04/12] mm, arm64: untag user pointers passed to memory syscalls Date: Fri, 22 Feb 2019 13:53:16 +0100 Message-Id: <3875fa863b755d8cb43afa7bb0fe543e5fd05a5d.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 commit 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. 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 | 2 ++ mm/mremap.c | 2 ++ mm/msync.c | 2 ++ 10 files changed, 30 insertions(+) diff --git a/ipc/shm.c b/ipc/shm.c index 0842411cb0e9..f0fd9591d28f 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1567,6 +1567,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; @@ -1706,6 +1707,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 ee2bce59d2bf..0b5d5f794f4e 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 d4fd680be3b0..b9f414e66af1 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1601,6 +1601,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 41cc47e28ad6..8fa29e7c0e73 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 f901065c4c64..fc8e908a97ba 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); @@ -2869,6 +2873,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); } @@ -2887,6 +2892,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 36cb358db170..9d79594dabee 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -578,6 +578,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, unsigned long, prot) { + start = untagged_addr(start); return do_mprotect_pkey(start, len, prot, -1); } @@ -586,6 +587,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, SYSCALL_DEFINE4(pkey_mprotect, unsigned long, start, size_t, len, unsigned long, prot, int, pkey) { + start = untagged_addr(start); return do_mprotect_pkey(start, len, prot, pkey); } diff --git a/mm/mremap.c b/mm/mremap.c index 3320616ed93f..cd0e79c6ce63 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -588,6 +588,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, LIST_HEAD(uf_unmap_early); LIST_HEAD(uf_unmap); + addr = untagged_addr(addr); + if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) return ret; diff --git a/mm/msync.c b/mm/msync.c index ef30a429623a..c3bd3e75f687 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -37,6 +37,8 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) int unmapped_error = 0; int error = -EINVAL; + start = untagged_addr(start); + if (flags & ~(MS_ASYNC | MS_INVALIDATE | MS_SYNC)) goto out; if (offset_in_page(start)) From patchwork Fri Feb 22 12:53: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: 10825889 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 155ED13B5 for ; Fri, 22 Feb 2019 12:53:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 04638323D1 for ; Fri, 22 Feb 2019 12:53:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ECA4532435; Fri, 22 Feb 2019 12:53:48 +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 87F53323D1 for ; Fri, 22 Feb 2019 12:53:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5ACB8E00FC; Fri, 22 Feb 2019 07:53:41 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CB7A58E00D4; Fri, 22 Feb 2019 07:53:41 -0500 (EST) 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 AE3E98E00FC; Fri, 22 Feb 2019 07:53:41 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by kanga.kvack.org (Postfix) with ESMTP id 4CCAC8E00D4 for ; Fri, 22 Feb 2019 07:53:41 -0500 (EST) Received: by mail-wr1-f69.google.com with SMTP id f4so953617wrj.11 for ; Fri, 22 Feb 2019 04:53:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uDDn0ivyVadTQonBIumHfFBd6mG/pAa/u+KuaaJi/B4=; b=ifeNtJQkyncQjPa1ds+NvZNnkWDjnN02SvVJXCtC0ZY2PUmf0aMdNQek0QvKfzyg/5 9Z3/p68H14btA9pu9M5CBhNpxxhE+737Ro904mTTNVQsoTWQUjrSmrhj1vcnrCqWp/Sj GeMzcpS9IPoycSFHoKARch4/n32YJmSvjJTPiixjpsJsRnfdxjZVDHMwHAJ+PSUWWVBO QbdL4atIsH/ZPyGJhJ03v4BvfSZP3qYbebSZe0m1E8kYm2rVlrKmhZ66OaaIMNLMHqga 7idJNgwje1vH6a2Q/EYyvxWYIqagyqFsL84ApaBQejn+mUhAUMQb/48xvVYuhfhZHJQ3 rcQA== X-Gm-Message-State: AHQUAuaKQrSlbMTjEr9aHVTxG0hJTbCIR79zWxuOp5WWjYL1gSXSJmlp KEvq7IZnfhNLm8ECj+eV8F7Md3saom2ZN710fn1F2u6z5QaOsx3cKP+ApwwrmdfRup7kLl6P3oT px3lhOJa/nI6+mxbbgh7s9uREeljtmzPIWnargMTlfIEChLgjbUAxiLu+ANX9gpwtWK92AgrrHm DPp8u7sPYXaV4DVDnO9AjhKKCbqwBMILuStuTdy7jdVMfuvNN2ml8+qwAky7ckRFVJOKCzXIBST 8sqrkGZpsRUpDapr63peAuRjOIiHPYlNHi3LNlXLW/7lULW6pRUI4DhJ3Sl4CA7sCZmL0q1tUBQ myePF7nD/ZNORUM1WZfiHFAu5rEWlE0/ikKw4nH/81LVOvCycbatsnCJLIXdJw+ONJgBoiXNEtw c X-Received: by 2002:a5d:4804:: with SMTP id l4mr2973094wrq.177.1550840020861; Fri, 22 Feb 2019 04:53:40 -0800 (PST) X-Received: by 2002:a5d:4804:: with SMTP id l4mr2973054wrq.177.1550840020183; Fri, 22 Feb 2019 04:53:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840020; cv=none; d=google.com; s=arc-20160816; b=Z6K7ro3RjwRs0WuktY+JqRpDSEGFXDaWJr3dbhWzEyjn24eZGoCagWD813hj/dkOlD s6h8Z0Xg+kfMj6JMGCAl6rb7nAU82OIf/s6nemTHtiF6+vRcUZErHBX1LuqgAMrG9dDj fr69h3LfZV17ltGUyLi7V33p/8C/e2CSi17Q0IPnJJ7qd4W1bBrsbA5rxbJGpmaaKo6h BJF4DHCepDXTQWcdSw+2gAY5t1zb9VeU8y1OGIYJJec4cIR4vWDIpOkUuZmBSq73OcM4 lw8LjBcWw+YLQfXWToWp3sG/b5HAbCDYzsnpv7th0nyn/G0srVSEYaLHpaPlRQijppgK meGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=uDDn0ivyVadTQonBIumHfFBd6mG/pAa/u+KuaaJi/B4=; b=dTjfh32DG9/YaLFfAMkmEHs4/C7O/oXYJ6MKlsjQ7iXCQCxXzdUNwVGN+sGVoFXBsr ltKgskcZX4ZHRdCWHVM6ywU8cA9dfwEstwiHWp6B+fL7jDEWQhNSE/x32TX19CXISnVv g3Bgpk0h09zXaipjrn2fOZuIhVbEyGpme3jqv1qvJ4DSDDNQf7TDKQb+mBa+DtQzaPBh QiydW9zkaq/TmcglD3d0PH503CujPGbsFVkYEy+qRVTey5XE2miPicbk/Is/n/sRIHaY WjClz3EH+NZgvB7hDi6hfk3/IYSnH4WirBYpZSPRcUPydbQPUabfDcMKrUW0OcRKuied PcHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fnTgPPWF; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id r1sor1100946wrt.25.2019.02.22.04.53.40 for (Google Transport Security); Fri, 22 Feb 2019 04:53:40 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=fnTgPPWF; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uDDn0ivyVadTQonBIumHfFBd6mG/pAa/u+KuaaJi/B4=; b=fnTgPPWFbhryzIzggFc58E4JRsSfK1IU6Sw4LOT9BmgUYGkt3wEcfANoHsXQNUfzc9 iq9GnYboQsHAKfaKEMrayX1hTXWMMzN/I+6xp02HRbDpZSbRDDjWtj8CtbTOO+dIfC18 ltrqDIgvui1Exhs0Vsi5guo+6E3eT4Wtp8hwz3ZjUu7OWeuvZHwtR/+mz7N5pObt7Jyg o9MWPu/ZGZA22IZSghjyRMXWOy54fhII2IqGEsHjXbEZzuq4hcuupqXge221UVGDnEs4 VFRnbwlpME12B1w6MdCak9Bm0Q10KMMEgKTJkafiFF5n0MsmyUqd2OoKz/ClD7ZF5Nsp o7qQ== X-Google-Smtp-Source: AHgI3IZUynwk0jQkzXh/fkOnLsB6yWgKr9nX+ibOmHPHqGghLVkrUAqVS0J+X+P7S91mSoisvLsmzA== X-Received: by 2002:adf:e548:: with SMTP id z8mr2994894wrm.52.1550840019712; Fri, 22 Feb 2019 04:53:39 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:38 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 05/12] mm, arm64: untag user pointers in mm/gup.c Date: Fri, 22 Feb 2019 13:53:17 +0100 Message-Id: <12759ef1c30887dd9fc7a04498f5a434a67f98d5.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 such case. Add untagging to gup.c functions that use user addresses for vma lookup. 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 75029649baca..b6eda1608bea 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -683,6 +683,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)); /* @@ -845,6 +847,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, struct vm_area_struct *vma; vm_fault_t ret, major = 0; + address = untagged_addr(address); + if (unlocked) fault_flags |= FAULT_FLAG_ALLOW_RETRY; From patchwork Fri Feb 22 12:53: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: 10825893 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 E2C9014E1 for ; Fri, 22 Feb 2019 12:53:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CDD48323D1 for ; Fri, 22 Feb 2019 12:53:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C218B32462; Fri, 22 Feb 2019 12:53: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 6733B323D1 for ; Fri, 22 Feb 2019 12:53:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1E3588E00D4; Fri, 22 Feb 2019 07:53:44 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 176C28E00FD; Fri, 22 Feb 2019 07:53:44 -0500 (EST) 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 E488A8E00D4; Fri, 22 Feb 2019 07:53:43 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by kanga.kvack.org (Postfix) with ESMTP id 8377E8E00D4 for ; Fri, 22 Feb 2019 07:53:43 -0500 (EST) Received: by mail-wr1-f71.google.com with SMTP id e14so951702wrt.12 for ; Fri, 22 Feb 2019 04:53:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QRzSxiJgMYZtPmoiWjDl90NjyZgMYTYzeKBtn1CA2K4=; b=rNQw9ZUUPy8FB7cDPty2EO6fvfZ+ieLMA2bOPoUDw3r6Nk/c3IaHI26Oba2HTiBsFY msS+E/bO1lPnb8IuMfjskdN+MzPjPKVwOQdGdOTfQd+IfTVA6jgoZ+yOZf5KUDIZYAUj LO2F+5Kc7qvJj+WL9+8W2pz5L5lTWHkrGqWb/WyapeijPvV61azMK6wXd08k61vyjYhw VxZ/F13YLtoeXI6VJ9OxBr1issEJUkd1VrWd7vMV+biIxwduF4ggO1jpdvkIz+msFqF1 7CN88P0UnRwmWEvG641j0+NkKVgEw7Sw/t/E8U2OuICZywGosccMa/i0vvyn+E6huYml AXeg== X-Gm-Message-State: AHQUAuacW3FOq7b6+x3Vf7ira01Ucf7e8tQqR6BeDAdBsqhhv6tah0uT +VPfJkP+uU2fv1suLz0GadNPgNbDIES9NjPnBm5gzEGCFqkgR/BOEdf1g4vr4dG+ehZ2WJg3Thl rYLdGYLzb+92F5UiLgoGQcPjFGFr93QP67/780soP0ayHL4Ci6vC0XhezaUGxDlXSnmZZfn/Rmp CN2IuYOevfA4sw+m1BRoT4kH2P9oQzIusZxCaktVehQ/PaK9Zu/tI3da5dkFUC8/DVMpa836s8F KvQOn0BznA5LaJck8Ps7TqRLRlRw8izUQOVfVgQODFk26FXs/i2foo+FQ4w7aLyNzrin8ekmgip 7YDgsUhgOv5Aaim9JtNKMEVLThx2l+mSXRjNv4/S3VHgNrE1ED8ycyV2xds675oZ7Ws8CtPvF4h S X-Received: by 2002:adf:e641:: with SMTP id b1mr2796993wrn.213.1550840023068; Fri, 22 Feb 2019 04:53:43 -0800 (PST) X-Received: by 2002:adf:e641:: with SMTP id b1mr2796954wrn.213.1550840022289; Fri, 22 Feb 2019 04:53:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840022; cv=none; d=google.com; s=arc-20160816; b=QWMNDVhzdd6hpg0uU1SToQInvibZXGVe2EWa8kmBbEMdAVBwfywRQRjsV6DSnZ08VF If1QjPde+mzMYYvfn5JWWf3yk5o1mVV9IT2zf/IM9vjEAqNNPbaFTESqKY3sbvr+ptmT aXuWCJJbfxJj4P6oWzrUPlaH1alaPvnQH6VggyP2UY/2VmCLuhtQLbNBomrS3z9XLYg7 XLm+oWE09a+VGpDwq1bjcY68qTys8tffMiOFc/kdKSqXhWQCyRN36qRa7eIYfWCXBvle qGFjW3UMtC5UiYi48J6dqOpw101VfgKECV/S1QhbnOJpsuFPmhb7VyEKsSiBekgzPHEZ LIlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=QRzSxiJgMYZtPmoiWjDl90NjyZgMYTYzeKBtn1CA2K4=; b=LNDTyFt9yCpaodLlPM55gR9D+cAb1OkpW5zx6VANJR0oNdjWEVx47U6cWELG28ac4f byJobznTGczgGZND3DB+wNX7aslpNBzh0hj66yhJ/uAWJo5g8yI5bRxQAs3z7Y0UA0Z/ 0ewC+BoVMKCpyi20taIHw+aT/8WOB4ysmhdNJvw1QbXkLhb4rgtFEtHYBCXx5ybeh/SA W0gebyGWLsrmVIrJSRx94Pz6za590LpGDfLOQS9WJKhCjN4XA2PRxmvXuEevFizpXjAH 4erbaxHfKYPo+iKqnts/70Ljc6oiBQn+DrI1GHD2pM8XidAbadN8iy0o3OEYJBUR424O YpvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=bOHZq9Gt; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b14sor1109798wrx.20.2019.02.22.04.53.42 for (Google Transport Security); Fri, 22 Feb 2019 04:53:42 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=bOHZq9Gt; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QRzSxiJgMYZtPmoiWjDl90NjyZgMYTYzeKBtn1CA2K4=; b=bOHZq9GtneVcqI+7dx1dPlGbKg1NqyMwC/3dQj65R9b+AaL1dEw6WnsEFnvda6QlbD lx5q7BJ+HMum/sxb5KUmNx4YqHmnliyifP16MSQibp7C2IHgTBNe1hU9pCqsXLkuat1c znpbV/DdU4KpgxO4goYtaVe+u2TyXP6kbQ1RoQds32uwFxEU5JLU4SpkXRt6LADYtjAl WI1hDIyHVRaaElIfgQVsUPN+J6MsWMExP4yrdvC2wBzICHHXVDfMEKh4sCD1RwZwqDI3 3IZIK/md1m1LDI9VJmKIDCuhLJSumlID2vVjptcouY1GMsQmr4PDIVNhj6rbpSyQdU/5 NOjw== X-Google-Smtp-Source: AHgI3IY2qC70XZTghQybUySJZNUvHOQ7jsxQuTtoFLsrp3D/CO4zCTUsA3Qs8Io1jJiy1nb1Hyjy/g== X-Received: by 2002:adf:822d:: with SMTP id 42mr2852354wrb.63.1550840021805; Fri, 22 Feb 2019 04:53:41 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:40 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 06/12] fs, arm64: untag user pointers in copy_mount_options Date: Fri, 22 Feb 2019 13:53:18 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 a677b59efd74..d4b7adef9204 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2730,7 +2730,7 @@ void *copy_mount_options(const void __user * data) * the remainder of the page. */ /* copy_from_user cannot cross TASK_SIZE ! */ - size = TASK_SIZE - (unsigned long)data; + size = TASK_SIZE - (unsigned long)untagged_addr(data); if (size > PAGE_SIZE) size = PAGE_SIZE; From patchwork Fri Feb 22 12:53: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: 10825897 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 5079514E1 for ; Fri, 22 Feb 2019 12:53:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3EFF832464 for ; Fri, 22 Feb 2019 12:53:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 322B932482; Fri, 22 Feb 2019 12:53: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 C90FD32464 for ; Fri, 22 Feb 2019 12:53:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0FD758E00FE; Fri, 22 Feb 2019 07:53:46 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 037898E00FD; Fri, 22 Feb 2019 07:53:45 -0500 (EST) 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 DC9CF8E00FE; Fri, 22 Feb 2019 07:53:45 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by kanga.kvack.org (Postfix) with ESMTP id 7E2CC8E00FD for ; Fri, 22 Feb 2019 07:53:45 -0500 (EST) Received: by mail-wr1-f72.google.com with SMTP id v24so937474wrd.23 for ; Fri, 22 Feb 2019 04:53:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YCJNq7ywB4uaUqF1MkWtAuFgMYZGYk6wr0hn7fPLDX8=; b=gyMrt9R+J75Hrp7rvYx1lB1bfhwIRT/JLnAygAgFUuyENcI4bEYqz4AIj+lJ5Oz4Lh fHLedeQ9lMQaGI9g8GhPY5EejcV3KSiSl6opI3A1OmBy/+pSBBWX0QDxVeooAplnPEzz IsgVHf5qEZLuuutqgg6U+qFSWmH0lHsauzyJZCLVkNBdL+sbN6mdz1g0GK8/SnH5qLEP FNf6NwBcw+i/e4NmzclVD06flBdqGizWkNINxOxwoZ2QeVvNhhLxXaTp3InP+z/lJ7aw okITSVfBC/e1v1AGfoMZo4GJpFogzDnJ/0eOUxTe05ybObmSna64vdqTbeEySW6x55jf 3TIQ== X-Gm-Message-State: AHQUAuaKovmPxkns0GbvZDRE32eUtuR69Ku5SspCa8dFAp/5aWAZQLcs WXcKiwPFky/OjzQ5CuL4AJqBkjXGA3QP4N1TFBnkKN1ptBlTK9Qq5pAOr0RLx352F42Mt6IdI7r QZxf+wySJZyOSqx4+Pym/4saEqCwXbiH4ejJ8C6u89F11GkGISOCWIkyjk8juN0MudLXEwxBVKt JlsEF8s7DY8T3YkOcEfpo2iHUMl3tarOyIdtoRkn4lpwv/yNTwANMOB/VcCF2SWTYJgHFxDkOvC zNBj9EPakcyuX9QUCCUlFSyHPsn6lUd0/mcgNt22dILuJmVKnRXzsAv4uFQ97pZt43WOiIQeyTN dH14y+w7rQuyN2Xfqx8iOXlthQnINONJnwi5FK47k4QxDsmjxJ7NBaYt4FKCtMBZefcjPHJCtum D X-Received: by 2002:a1c:e1c4:: with SMTP id y187mr2499680wmg.50.1550840025043; Fri, 22 Feb 2019 04:53:45 -0800 (PST) X-Received: by 2002:a1c:e1c4:: with SMTP id y187mr2499630wmg.50.1550840024202; Fri, 22 Feb 2019 04:53:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840024; cv=none; d=google.com; s=arc-20160816; b=qxNbviZytyC5LmVVCXFLNtU7XtscTAL2Dau271dD+bI3PbUyQAL+TTIa78Gm6cdVs4 UEaWpoTa88XrWHZHZd6Op0T7OA9Rr0+dmaQOQtOF4ab/OZ+mb5Z/fgRqTc5BdxSMOV2Y Cesi6z4FU51QQAQw0ZYVKEOTvHTivpKq0rhQNecV/jiBlKM6KDF0RJBOW8Sh/V6SRT5Q r9VwWuX6pjgostC1RKm0OGT6IJJA+4IE0/7c94lfNqTzshJIbecNF4GU0VmOgnt4Ty/v Gi5VrlAVAcHGNN3QAPSo8j9zxdTXWI9mDXn/GRbbzDlq4DT9KwSHB7p61r5nDH7oNEqU sxBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=YCJNq7ywB4uaUqF1MkWtAuFgMYZGYk6wr0hn7fPLDX8=; b=IEj/wGoCNOrbZ4OkWZJaR7NwK7WJ8JTRRSJ4FC9I7EnC5JjijwgPfNo2IxzL1HOFwu sMBwEEf8cPgCV/YjYZp1ddV/GMyBGGinDR3jGJPJdFnhX+AQYxkPl7FA5/z+h80GcavY UA+AGVW5lgZg8kATJxgBV756eNkJCCg1EjASGjgrsxa5YolpU4rcaz4ap5oY3enZBXM2 1rvu1Af7dvrS6uuLlOxEAFN92dd1cLj+oQ/KuECdr4TqS4fMHe5Dt6JbSvTSeQYhSbA8 bMzoy4KMaU/rLh3WUNrEOYDrtW4fG24cLfPZoqEP1tE8Y4xmYTmVo0Qmre29gnffYXAz NMIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BdeC2+jN; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id d1sor1091754wrp.39.2019.02.22.04.53.44 for (Google Transport Security); Fri, 22 Feb 2019 04:53:44 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BdeC2+jN; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YCJNq7ywB4uaUqF1MkWtAuFgMYZGYk6wr0hn7fPLDX8=; b=BdeC2+jNB/4V8eMU3JsQLO0s40wh5+ubv8EL/H0OL5QAdcdUFTEdOl5givygFGSytf jcZdXVsDWgmBZF47af5N9ErRJWRqDdGFbYzwStmoYfWu3LPhdR15RoinUqaGl4Qjgq0d YCeMM+dJno0mPLko6w5cnWPaCxS3AA2Rfd/ZMWou0m13PSErWQBsV6d5R8egW63k1+91 6M6Xf0kf8IIz0JxRxyv6eb8DSW3uJPeZp30Ea6z0EgQHP8RD6UikV9fQtwyB6NNbFht8 Y6QmzmWpqBZaGR9Y754fPqzonuZULmj8ckN9DYzx0pIKOjOjbgjMmJB8O+P6iH8eCk5e 9R2A== X-Google-Smtp-Source: AHgI3IZgI7h36o877UM1PUQ4BYpfOXhaodse0zlvLXALYRj1MboJwPC5054Yq8NVsgrx2Fr3cstKRw== X-Received: by 2002:adf:efc4:: with SMTP id i4mr3192098wrp.42.1550840023746; Fri, 22 Feb 2019 04:53:43 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:42 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 07/12] fs, arm64: untag user pointers in fs/userfaultfd.c Date: Fri, 22 Feb 2019 13:53:19 +0100 Message-Id: <8343cd77ca301df15839796f3b446b75ce5ffbbf.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 userfaultfd_register() and userfaultfd_unregister() use provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in these functions. Signed-off-by: Andrey Konovalov --- fs/userfaultfd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 89800fc7dc9d..a3b70e0d9756 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -1320,6 +1320,9 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, goto out; } + uffdio_register.range.start = + untagged_addr(uffdio_register.range.start); + ret = validate_range(mm, uffdio_register.range.start, uffdio_register.range.len); if (ret) @@ -1507,6 +1510,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) goto out; + uffdio_unregister.start = untagged_addr(uffdio_unregister.start); + ret = validate_range(mm, uffdio_unregister.start, uffdio_unregister.len); if (ret) From patchwork Fri Feb 22 12:53: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: 10825899 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 F2B3B14E1 for ; Fri, 22 Feb 2019 12:53:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E08DA30A3A for ; Fri, 22 Feb 2019 12:53:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D2A6D2B7F1; Fri, 22 Feb 2019 12:53:56 +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 7524930401 for ; Fri, 22 Feb 2019 12:53:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA5198E00FF; Fri, 22 Feb 2019 07:53:47 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CDEA28E00FD; Fri, 22 Feb 2019 07:53:47 -0500 (EST) 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 B81FA8E00FF; Fri, 22 Feb 2019 07:53:47 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by kanga.kvack.org (Postfix) with ESMTP id 5BB6B8E00FD for ; Fri, 22 Feb 2019 07:53:47 -0500 (EST) Received: by mail-wr1-f71.google.com with SMTP id v24so937514wrd.23 for ; Fri, 22 Feb 2019 04:53:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=9mSxyMmz1xjHsHJUyT/WYIPnpYi9SCNSb/qUJqV67bQ=; b=oW0uw3YEGW3tJ+mGmcT0BB+aS3TSUu35wSfqLxLVK6FUkoOy7C6iJye2mBBdFokVgy IpGEZCvA+SKHq0cBQMWjGUmj8BXsjFhv2qL234SJ49SmZHSZXqBo7gDvMhn/Ok32icMK n3vfqPnwh84bBUeCIQov2v5Wrwkh3hMbru/8kYAuFSxRwDxaCWMbqTFMHYlsW4t2TpCo 3XVkajRvO48eiPWPIOlMjUDP52epC+dVoNrmnNKSBxegOYIc1oMq6HJu+q7N3xbu5hwO +5TkeQdsAo89N7kzyQeiS0Bg0vcnIsZK2UycROPI9hCbgWs8swRFlB0POcMFonyS/YQy nVVw== X-Gm-Message-State: AHQUAuap0BeZN7zPvEmTC2PB2NglVkc07Zqh7aa9qzW1u8T+0dAQ/g71 wLJBKj+Bk0IssaisMZKnmTWQQUPnEOEPntgpDggdb5vhnwhUaNEM7CTCheDuto4vdyV8a05G4jH 5P1ZdUYkoNY3xc3Z0CpDc3JiL52uwiVRgatyqDDLvdsyHJTeNrBxZKmniRlfEywBeuHpwzqVkcx RJGP57f6myzIARluXr1wYN4NbfgwyQR90JQp2MBJX8haPhH7ZAf5L121a1DtpmawL3pqEF92PN3 e2Y9OC3Xln8+iTGqL//owIYsF+SCq8b2H16aQxtp51xPBAAEy9/HPFostAF/hoNay3MoYowb/Up orvsQDB76Jw2gUxBLYLUTMiYTpYUI9DNT31WZJnEEvzBpBwfBQYhLKr+A5YGPqUuORJVUf6qNSZ a X-Received: by 2002:a1c:4d17:: with SMTP id o23mr2478214wmh.53.1550840026917; Fri, 22 Feb 2019 04:53:46 -0800 (PST) X-Received: by 2002:a1c:4d17:: with SMTP id o23mr2478175wmh.53.1550840026122; Fri, 22 Feb 2019 04:53:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840026; cv=none; d=google.com; s=arc-20160816; b=kjBcl+geDtyWXNnBtweajK2OnxmoNPKm24eNG+Q9aa53NC4/3osfNHYInMlJjk8uxr SjUSZZPgpuKugRHuKMBT7dr2FzAKnJFEIXEtmYPmj/jYqQrHnoWwVUJb9zFBl66zHRg/ XlUw/y0z2ArzLM8Dc5MJTOPNYVIJkE3Ne+g01sqDaMsEkCMDTpLzbnAMJyKpWe9BsoMb yMho/Xfba0WNUDmrHIRFWIQy83dafQF9JBMdoQUB2UmF80fBmHbNfHCeOjWaY/PmHL+x ujMNubztVrBYpv/j20Xagd3TG/0aoR8aejE5g1z2BAZI22NQ0qEr62VPvS9IdCuZPfYm VyjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=9mSxyMmz1xjHsHJUyT/WYIPnpYi9SCNSb/qUJqV67bQ=; b=ZQSiGiK+xFgTlSDEEnoNH/G+G6hO2tIO8HsvoqDJah/bnrc8vYuLmsJsAs1zwuslgG Of8kI0mY9JkQBm8jK3ynAL8dM71aqjkeLrNKe+0rSbDuzEgDu5Efotf/Asr2V9+IcWgV SKWf1MuJY32Ho+eEYFRqN1lLhnDghI2XBGwiHDGlCL3YmWJPWZ6qaLPuJAiVcmGvQmIS 6D73nvAznm5qvZ+RbEifqC+Aypygd7y+UxKtHsIJikr2UZ3MgLpxYFK4GNHToj3O8/IL VtPPdFD0EArfdbCvozGNBrRasLlEAra4xJ0V2XJ3Qz9zK+vRpE+R+3qJz+Yya10TyE4k c1oA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=dFFShaLk; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b14sor1109912wrx.20.2019.02.22.04.53.46 for (Google Transport Security); Fri, 22 Feb 2019 04:53:46 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=dFFShaLk; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9mSxyMmz1xjHsHJUyT/WYIPnpYi9SCNSb/qUJqV67bQ=; b=dFFShaLkfC9Jd78NrGHT6+qV8Fa9yuKItk3VxryuG9FBzLyVutr/noYyEqX9rPsCPB 4FR/7879ajA8ORjVk4I07QF8PQLg274w2Q+K0O39R3Ga3Hhea7F4g92KaP8LM4y5+Hso eJt1r7agSQJ/Q7Cx/ewAN6NsplIo0lNiUtrymbVmaJov1lsCukOg7OdDCcVG/G6dymSR 5NrIRbGPjHAFt0tx/2kWNS9S69vHxnpOLSsET8RPCLmIYV5M4RxLn41hJi0rYK9TmjkN 4J4iqkL9iIltHwkRu+ZKdYA7Xy0gQC5aG2HVCItmVD26gYOu7PxGByh9QtCwnvGsjRA4 qTzA== X-Google-Smtp-Source: AHgI3IYB1rxXC3qLSPjqnlg3vyINEmisEJ9COGx3+BlbVTSYQsvRd/r4g+wzkk/8Tl6H/RsXQOXN5Q== X-Received: by 2002:a5d:500c:: with SMTP id e12mr3055201wrt.27.1550840025673; Fri, 22 Feb 2019 04:53:45 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:44 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 08/12] net, arm64: untag user pointers in tcp_zerocopy_receive Date: Fri, 22 Feb 2019 13:53:20 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 cf3c5095c10e..80f3c1fb9809 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1756,6 +1756,8 @@ static int tcp_zerocopy_receive(struct sock *sk, int inq; int ret; + address = untagged_addr(address); + if (address & (PAGE_SIZE - 1) || address != zc->address) return -EINVAL; From patchwork Fri Feb 22 12:53: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: 10825901 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 B7CE613B5 for ; Fri, 22 Feb 2019 12:53:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A746032464 for ; Fri, 22 Feb 2019 12:53:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9276132498; Fri, 22 Feb 2019 12:53:59 +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=unavailable 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 324DA324A4 for ; Fri, 22 Feb 2019 12:53:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B837C8E0100; Fri, 22 Feb 2019 07:53:49 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A99708E00FD; Fri, 22 Feb 2019 07:53:49 -0500 (EST) 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 7FF768E0100; Fri, 22 Feb 2019 07:53:49 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by kanga.kvack.org (Postfix) with ESMTP id 233808E00FD for ; Fri, 22 Feb 2019 07:53:49 -0500 (EST) Received: by mail-wr1-f72.google.com with SMTP id h2so977890wre.9 for ; Fri, 22 Feb 2019 04:53:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=2tCXxaQ0AcT215cB6TyMBJl5HSukg9TNH5t025IrNLw=; b=FE8EHq5EapLmkw71pReu1IWLD8ao0Sg6UW/Luis2uuMZJCXxnXcNHVuwFf77Eqc4bC XC1Myp+XZoDFJrn1Sy45jGBhrqrneqtCpY1ziM0TPu9Hz5BC2P3a7SrINNvOxAPhRreC o4FPjKJvLuj0cIjhqXuotW9PU2Kr18O66mnN/rXnnA1yfCeZlj/U9o5jm+luFyaOR/K5 Cd4OVOAOQFfpkhq/p95JrMJtjJs9q6rgTqZy0+hOtlythAc2jKs/WqioisoCXKyVBaB4 KZWN14ONxBsvmHt8rSqnJq5alapanHpSCBbOv1sdez8w3avbBQ3akMUQJKd+uccLHlBG fAaQ== X-Gm-Message-State: AHQUAuZTk1ZQRSPAo08L46r9WGGtfWweAhQiE9lBnS57OgIXyj+9N/3i 3McXaAm+/SqUygLTzJQ1buMzq0ZuNWgRI/jbvDmZ/sr+mJHjlqsQoKgDSjyvlPu+EOWPy2vEhn1 MHisTj+d023PFq21dlUbdV74My5++7VFC8ki560+bTfF7CY1LCUuq6b5z5LQ1ndYO+EwS7QJpqp L5sWPQNxL9ilzTPlLdE7M5TWYa965P/ym7DgI+5jLN7A/DK3hYTuU59ZN1B3TVLitjW9arlR0RS aqlssORpr99hYD5W8SlMZJHoK0TKwjPMaH1BNdTU67oiJuU2FrIyCm9SiNqaNq+7OvN0ya1f/7t uhaPb95LubireNOD9Qm9dGMKkuM/3uBXF3Std8Jk3dQPkXNDmkYVZLAeY/tT+utyuwbHq10/Dxc l X-Received: by 2002:a5d:474f:: with SMTP id o15mr2982018wrs.70.1550840028692; Fri, 22 Feb 2019 04:53:48 -0800 (PST) X-Received: by 2002:a5d:474f:: with SMTP id o15mr2981978wrs.70.1550840027916; Fri, 22 Feb 2019 04:53:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840027; cv=none; d=google.com; s=arc-20160816; b=p3wwXRVR5bh5rX+z5auxWRQW2NaS8ylgyLl7Vq8lCFgTN1E0mxSCuEFRGGoxHBP9Lz vCCnkVdoJxyHod80oqhirUc2g2UD1ynXZOKWnEilJ5qZCxiJmudwKjX+HMqXINVnyDau FgriJPWqOTc1yWH2EvSvFkQt2WrRIgm+xYAnFGiLkFPmelyEj+1BXR+MS0u29xGFoUAV bP96zFunYvyaggSXsiJJetrEVOa67t3ATr1CtDhnCj2YWUwXGEig1GRBiVeIoUzADqMQ AvCxfvI9HGQlzOLY8f5Ituobeqsx5QMQpu0e+iCQybiZie4V6OQHyskTJhsybad93rC7 OunQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=2tCXxaQ0AcT215cB6TyMBJl5HSukg9TNH5t025IrNLw=; b=D2f09Q1fQs2fvAWp2Ou1TXK+im377QYAgPcUjr62GmtS/T09aNv53A4efosTC6MtOU egSHW+yIA6p6bkDOTJWlwzdJ4Aam/nvzRDPGP7Q9adh7FVArbs652oeKMUGMa5fRoQ3o Zyrr0RlRYOveH+90oemHH5od28vIcfkhPSNL0KzAkwuJ1nDd5B7ikHm5kAaMPdRGtLvV mKm8+twzOxfVATyfZ6tjYC/J2Z0Yu4V3vpjJwc5tAQ01EhioYz2wJcdtM+iT909aIrLN Qdd+38y/6D3F70CUYKvYzFLWwATTncLXhupPLmsyzEva/szfC40F5FandnRz94qNSg+C 42IA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=B3gwK58H; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id a15sor1090330wrn.3.2019.02.22.04.53.47 for (Google Transport Security); Fri, 22 Feb 2019 04:53:47 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=B3gwK58H; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2tCXxaQ0AcT215cB6TyMBJl5HSukg9TNH5t025IrNLw=; b=B3gwK58HnJ85CmTL2efZvH+J/Nm20KCnydLNY0dw7gbtvGIUGcldP8npiWTUpDXgKz /u11H7eQqGQOsrUx9Bjjx9CGJcxvqjtgzrsVE+c4Cnr2aH4wSMA3cBw28f4m5dvZcDtW dE9QsCl+18tkcm6KtqrSMoS1/n9nvYZMf6UFWkly4U8pHmTr2bgB/2tzCG5OvgHPbq1p LygIpIzOhXUWhS3SS/cArJu5XyCYKaSFAA2Xlb21EPCN/ry2nFAF1xMDOUEnala+awoK ndjVy074STqch02YUSBKRqql7aX75kVTJAVZrchuqsIoYuA52Cu849nBt6+cAxrGpU8H 43FQ== X-Google-Smtp-Source: AHgI3IYJ4JqjThJgosMpQUX8CWU96fplWtblPpUxW7NKKKm/ffsucHxns87xgSXmASXlP8q7nFWW4A== X-Received: by 2002:adf:ed0f:: with SMTP id a15mr2881069wro.249.1550840027447; Fri, 22 Feb 2019 04:53:47 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:46 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 09/12] kernel, arm64: untag user pointers in prctl_set_mm* Date: Fri, 22 Feb 2019 13:53:21 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 prctl_set_mm() and prctl_set_mm_map() use provided user pointers for vma lookups, which can only by done with untagged pointers. Untag user pointers in these functions. Signed-off-by: Andrey Konovalov --- kernel/sys.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kernel/sys.c b/kernel/sys.c index f7eb62eceb24..12910be94b7f 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1992,6 +1992,18 @@ static int prctl_set_mm_map(int opt, const void __user *addr, unsigned long data if (copy_from_user(&prctl_map, addr, sizeof(prctl_map))) return -EFAULT; + prctl_map->start_code = untagged_addr(prctl_map.start_code); + prctl_map->end_code = untagged_addr(prctl_map.end_code); + prctl_map->start_data = untagged_addr(prctl_map.start_data); + prctl_map->end_data = untagged_addr(prctl_map.end_data); + prctl_map->start_brk = untagged_addr(prctl_map.start_brk); + prctl_map->brk = untagged_addr(prctl_map.brk); + prctl_map->start_stack = untagged_addr(prctl_map.start_stack); + prctl_map->arg_start = untagged_addr(prctl_map.arg_start); + prctl_map->arg_end = untagged_addr(prctl_map.arg_end); + prctl_map->env_start = untagged_addr(prctl_map.env_start); + prctl_map->env_end = untagged_addr(prctl_map.env_end); + error = validate_prctl_map(&prctl_map); if (error) return error; @@ -2105,6 +2117,8 @@ static int prctl_set_mm(int opt, unsigned long addr, opt != PR_SET_MM_MAP_SIZE))) return -EINVAL; + addr = untagged_addr(addr); + #ifdef CONFIG_CHECKPOINT_RESTORE if (opt == PR_SET_MM_MAP || opt == PR_SET_MM_MAP_SIZE) return prctl_set_mm_map(opt, (const void __user *)addr, arg4); From patchwork Fri Feb 22 12:53: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: 10825903 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 748A514E1 for ; Fri, 22 Feb 2019 12:54:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 620C9317D0 for ; Fri, 22 Feb 2019 12:54:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 550EB3242E; Fri, 22 Feb 2019 12:54:02 +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 DC203317D0 for ; Fri, 22 Feb 2019 12:54:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EF068E0101; Fri, 22 Feb 2019 07:53:51 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 823D88E00FD; Fri, 22 Feb 2019 07:53:51 -0500 (EST) 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 6D4FE8E0101; Fri, 22 Feb 2019 07:53:51 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by kanga.kvack.org (Postfix) with ESMTP id F110E8E00FD for ; Fri, 22 Feb 2019 07:53:50 -0500 (EST) Received: by mail-wm1-f69.google.com with SMTP id p4so286843wmc.8 for ; Fri, 22 Feb 2019 04:53:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=mpZDvMXD49QdxJt8wpvUxUfka//FLmK5Q3bpesHxKPk=; b=HC0TADVJ8/pvcYOuyQ3cisSwbfT7LMOxqqsxkWg49pf3f1qV6ZeFvWB4Fx2EYiaJ1B gHzUcfnfQy3eo3SQA4bkJRTsDaT8+RCOVa/e1u6MbhvgxawRQpOUzwMkp8L+SDWsZiEE obttkHGmrI/xXrylfuMfZBdvX/5G8zinaAZb/vwdFz9Ma9Ap3WuOLwAi1DGVVYtCOG+m HCRFZ4T3GbPEMzwdt4M2wtN3xCrTmiiY2bwI/Ez9N+1/a5zqsUx79AZ/d/P7DLxIYa1D 6R+f+fCy9zCz4p5BY44diSonTZ50dMd2jyxizu/UnznrDwB3LValbE3Loc/+uQvXPpsF K3gg== X-Gm-Message-State: AHQUAuagL7MwU3DyzyZUcbSDz/PmdogXiaQix/W9Inj6uwawb73PIeFw y+kR/HKGluUDbuOC5xOl+QEV6ZcUunBqSpHM6w1pOncGIDT0axpBpHyOZ/22wQ51Hj/0UrvHTkX VxXyLUaYC3LH36vLrT4V9xUTE3eXY0jugAAe+uCpCppoh6sUvRxEWaEpO9/qUafodiloRgWH0NS H4FJtsnF3LUN6jQfA3kx4ux9WTMwu26BVZctr0gdTS3PyuXwJERZLu4zqk1flXeRSUn7EcDbQQr 3gUJ19W/a0pKrudKxR2P7Zl03yO67no2KDx/AbMmKeInmtKCFtN6jo9cbcwogvLWpJJyi8PjBQW X4D2+P/wB9+x6ZOzOCm2iIW7z0aWkgYP62rxSXIGWj836qS75JkyAMOrz53K4Auvimz/ah5yHeM 5 X-Received: by 2002:adf:eb45:: with SMTP id u5mr2779667wrn.102.1550840030470; Fri, 22 Feb 2019 04:53:50 -0800 (PST) X-Received: by 2002:adf:eb45:: with SMTP id u5mr2779630wrn.102.1550840029655; Fri, 22 Feb 2019 04:53:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840029; cv=none; d=google.com; s=arc-20160816; b=JuRssvnaiKZUSVAgfGHPw7R6g2xS4tQqB5uKNC5Q+VVv21b+hw9wWcnL5foU/I/QI2 +YIb80gLf+Sv1GxsOBJycU+QCQwgzG0po5IipCpXTZIP9MCB3fheV+DBMfL3tzf/2XgI GhyVr5Uzr9CrHRPKoUNpEUqywu2Qs9EMuM7MkJfOgRnVLprXI2vaPZ4ksgkc/k/zOQhi 4RX/FuqrLP8c4+dNnPxQAxk03ZYcspyy3k3Unxk3S+bzur2M7xYa9chBP7wuPSUV0Bez AReaLHqkcuGdR43Emmhi+17J6YUV/DSzBPn911txhBDkz7d4xtR0BD92Y4kcCuHn6GJv 3d7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=mpZDvMXD49QdxJt8wpvUxUfka//FLmK5Q3bpesHxKPk=; b=iqMGjqgcHO37QhiQGOJSoqEnraeM2ys2NJoDAnrf3alScatYaZnSKPrpQIZEWVaDaR WEh0aKLlAxTaYbUSTYV37cf89WLxyF7iyplhzuaa+Hx5hLcu9njM8xOS9lnSjuRuYl+o zRxjCWWf3TNy/qFVCYzIL3Cl7YhdbwSk6mR9yDsm2P+h+SBicvPUbFZ74gfE18MyoqrT Jc9/axvk1hI6DsnjfX7wQD3rsgcaeLVp5YsuufpJfj1RkzjcA8I/0ePeh+FRs8/fZyjA EVuWvCaADm0ZHKaRPzAG0us0pP8UVoeZR4P+WyeOAoiHGKm2PoGwUPxVIO9Dha6oNpJx bmIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="N/CagzxO"; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id v18sor1098320wrn.45.2019.02.22.04.53.49 for (Google Transport Security); Fri, 22 Feb 2019 04:53:49 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="N/CagzxO"; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mpZDvMXD49QdxJt8wpvUxUfka//FLmK5Q3bpesHxKPk=; b=N/CagzxODuKekdv/276f71hXtTpFv4KVsTM9wpsQCTigrrhdbo1a8DtexWnL0uLpkO 18omeTVoB8fzJ0j5vhRXb57XZU1dQgAzOHIdQfbKZw9pdxjklam5LDKdghq0pF7kUS4k TSktr+912xlWRX6ndEx5vBw3TcYrt2b8W0OjFZ0QWHqpApAu8Ul9v1iLffz1Em/x0Xya i4dGp/mgL49JMPe5c8rQczRqypr/Nip2+Eha9JF7UL97GTTb+ns7m5QrUYDBTdT9jbCq BDRsMTGNRmV1HHpb/DISeZc2DQhKRnEurBM5elN5TifJa0lXs64tIKkY6Q2oGNBe/Q7A j6NQ== X-Google-Smtp-Source: AHgI3IavQme072cpLVKWYOoRpuCla4tOdeXjezjFtFrbJI9VPdNaXp7MfZlgZAflIs5r0SUzqIri2w== X-Received: by 2002:adf:fecd:: with SMTP id q13mr2883485wrs.3.1550840029193; Fri, 22 Feb 2019 04:53:49 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:48 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 10/12] tracing, arm64: untag user pointers in seq_print_user_ip Date: Fri, 22 Feb 2019 13:53:22 +0100 Message-Id: <99b59c349ed81d4b204353f54b89f930f01d6ee3.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 54373d93e251..7c893328f97b 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -379,7 +379,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_addr(ip)); if (vma) { file = vma->vm_file; vmstart = vma->vm_start; From patchwork Fri Feb 22 12:53: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: 10825905 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 55A8013B5 for ; Fri, 22 Feb 2019 12:54:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 43E21317D0 for ; Fri, 22 Feb 2019 12:54:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3791132463; Fri, 22 Feb 2019 12:54:05 +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 A68A8317D0 for ; Fri, 22 Feb 2019 12:54:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE0128E0102; Fri, 22 Feb 2019 07:53:53 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C41DC8E00FD; Fri, 22 Feb 2019 07:53:53 -0500 (EST) 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 ABE6A8E0102; Fri, 22 Feb 2019 07:53:53 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by kanga.kvack.org (Postfix) with ESMTP id 48AA18E00FD for ; Fri, 22 Feb 2019 07:53:53 -0500 (EST) Received: by mail-wr1-f71.google.com with SMTP id j44so940772wre.22 for ; Fri, 22 Feb 2019 04:53:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=QBwzVVFrwl/lt9+IMfY2XIzbrADnd5gfL2MVdMoEoBA=; b=PegBozn85Ptz7Dc0VlorxS2+2uXEB4abVhcyW8dDA8uveh4Akq/tlNs4fzcwZjXULk IoCNWGHqD14qug6Y+LNpqIo3Ojedi7+TFRzA3crW5zgmaO5z17nMfkoVpKThXIseJREu 8pikHZYCaggojkWPu1TwRABX/NzM0v878ZMpp7m1xfkCtoKgWH3B/9KjC+g9+NA3KAxj JfH4tfaMsoLYS5zk3J3SyrWauV4n024KgmRY1k3abvpfNvjyi2zVvsMWIo9S7lEB/V3F Uvx3QAU1EE5gwF6V7KFDQSthKlzcfT+KEbQbsdEFLTg7zf2XiHoqTsCIbX/rgCdPP2I7 zx5Q== X-Gm-Message-State: AHQUAubLyrP9OgSY5D9sj3ElbQd6U5V2qR+LGgH6IDxHMkLDfvDhyQwM 6CFseLz9Elcoxuw5Ry165hteoj1U5htkIx/zn7yD7nLgKYnFSjTy7sDnUlSDpZFCdul8hJ6C9MP VVCj9jRSD9l7M24/XQxSTg18Sqj9EW0QErGHWCdSLZKOcVhhctczYNkvEb9bIPhISM7HudFJeD7 CAjX+rL/knRXn0P8Fb5H2aKcDWs2RiBYgzxSB5CTbzM8YIZHN3h/+VN2WvFfdanIHYlNoIrhHqZ 0q1KKGEFOqQLPaY2m0dv/hjcFWaXLavWLFfdM5/WSSZHuIKGS8mjv8o9G9a7FqZutW6c5H9Ax2v mTt33WWTxHPCpL+DOUpOkzDViBYZ7Pq9qNFI3/1iFpbIS3aKI93w7ofcEfEyT0NHKljCFPzyMCj Q X-Received: by 2002:adf:dd8a:: with SMTP id x10mr3035941wrl.117.1550840032835; Fri, 22 Feb 2019 04:53:52 -0800 (PST) X-Received: by 2002:adf:dd8a:: with SMTP id x10mr3035897wrl.117.1550840031973; Fri, 22 Feb 2019 04:53:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840031; cv=none; d=google.com; s=arc-20160816; b=o8eXcgD7gRWlCEdRRy7VydRC5wEavGhHALNEi3ah1yjCG1bG0nlgrfYGu7GAJheZ71 pW4uDXuURGUthk24yrb0fhv2Ae4ulrvNXi8jTMrp1wWjIUVw08dL0/KUMRwNxevMdzGA sWTzm9QzxIKt6yXnFBwvHSlnGqkuby5eQ36QhlF8KFt+SrojoIBDbdwH1Nj0cPfAXAnx goXTFogZS/uXwtRDSZH58fScF4XLPv0jxFeG55YI2189DXGWO0qFaGqQ/SeoL+cwBbJL VSGXuEKmTQLyqTmFqU0PdsKMIIgVkSD5u3SBVsiQA2IFg8LmaZvwSJQp1Es0CftXBdbo Zr3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=QBwzVVFrwl/lt9+IMfY2XIzbrADnd5gfL2MVdMoEoBA=; b=xrgdzTC9gqJH7SMlcqphOOXnySvvAakwyT3+wia5bc1KR/oKPRAobea18MWW7bVJk/ Jpl77lLf5TtZDRY32L0T3KpgVEE2qegDze30H7Rpek/8It9/PiBKQQg85PjzbOSy7tyA f49d/RvbfF62CokkI7qcIO3WsWVQR4P/Ep4KcGwmy7P7sm6QrPr/d41xTROfhKdSBjeH 1KUv/deGEwRvqVW0+JsJRgUsyTVtYQBo+8UO5HEX14oAuxzvtvIUNDS3OWzCohhxanGx cA5K+v3PK820t+ElsNgRrdXW2xuwNr65IwnjfGtbi7xDe7U2Nh5AMCE3Zp32fpZSoujI IDFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SP+p1d8f; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id l7sor1101025wrr.32.2019.02.22.04.53.51 for (Google Transport Security); Fri, 22 Feb 2019 04:53:51 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SP+p1d8f; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QBwzVVFrwl/lt9+IMfY2XIzbrADnd5gfL2MVdMoEoBA=; b=SP+p1d8f0BVnFGmwpzP5ObmgqSe7l5anq9SYK3Z0/3NQEWTdLTfJgPvtmksh4rCpqp IfRqUp24iOQF92rOfMBXwE8SN4Qg9+J3Ff0nPtSyfwTEqbyNm+DeeN5PWzbyT11CnE2+ NiNjrCubovAK/wbw8TnBd9rAdhYi2JGQm/9ZBjiURbGSLjfWJPtszQ5Wp43UoL05Tluv TlBFrRQljeAOUxOv3LCaFgOpw7HH2il9JHvSEnJIjNEhD/hw3TxMJV0heNgWZ4hyYnqc k67G6tBgxNf5nw4KsRQIR60AgXHPgBerP6BueL5DUb/aboLZYnGfKfMCtobiEEHXKnw+ xU8Q== X-Google-Smtp-Source: AHgI3IZQ0MX6sfukCDFdoJfLKBs/7VPcUCMns2qTz5bt2s0RG4yqp/Tz4fV7jNtbv7px50I5nWPT9w== X-Received: by 2002:adf:efc8:: with SMTP id i8mr3073265wrp.164.1550840031452; Fri, 22 Feb 2019 04:53:51 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:50 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 11/12] arm64: update Documentation/arm64/tagged-pointers.txt Date: Fri, 22 Feb 2019 13:53:23 +0100 Message-Id: X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 Document the changes in Documentation/arm64/tagged-pointers.txt. Signed-off-by: Andrey Konovalov --- Documentation/arm64/tagged-pointers.txt | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt index a25a99e82bb1..f4cf1f5cf362 100644 --- a/Documentation/arm64/tagged-pointers.txt +++ b/Documentation/arm64/tagged-pointers.txt @@ -17,13 +17,22 @@ this byte for application use. Passing tagged addresses to the kernel -------------------------------------- -All interpretation of userspace memory addresses by the kernel assumes -an address tag of 0x00. +The kernel supports tags in pointer arguments (including pointers in +structures) for a limited set of syscalls, the exceptions are: -This includes, but is not limited to, addresses found in: + - memory syscalls: brk, madvise, mbind, mincore, mlock, mlock2, move_pages, + mprotect, mremap, msync, munlock, munmap, pkey_mprotect, process_vm_readv, + process_vm_writev, remap_file_pages; - - pointer arguments to system calls, including pointers in structures - passed to system calls, + - ioctls that accept user pointers that describe virtual memory ranges; + + - TCP_ZEROCOPY_RECEIVE setsockopt. + +The kernel supports tags in user fault addresses. However the fault_address +field in the sigcontext struct will contain an untagged address. + +All other interpretations of userspace memory addresses by the kernel +assume an address tag of 0x00, in particular: - the stack pointer (sp), e.g. when interpreting it to deliver a signal, @@ -33,11 +42,7 @@ This includes, but is not limited to, addresses found in: Using non-zero address tags in any of these locations may result in an error code being returned, a (fatal) signal being raised, or other modes -of failure. - -For these reasons, passing non-zero address tags to the kernel via -system calls is forbidden, and using a non-zero address tag for sp is -strongly discouraged. +of failure. Using a non-zero address tag for sp is strongly discouraged. Programs maintaining a frame pointer and frame records that use non-zero address tags may suffer impaired or inaccurate debug and profiling From patchwork Fri Feb 22 12:53: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: 10825907 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 796D313B5 for ; Fri, 22 Feb 2019 12:54:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 678B4317E4 for ; Fri, 22 Feb 2019 12:54:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5B5DF32462; Fri, 22 Feb 2019 12:54:08 +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 CEEF6317E4 for ; Fri, 22 Feb 2019 12:54:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A968D8E0103; Fri, 22 Feb 2019 07:53:55 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 9FCD08E00FD; Fri, 22 Feb 2019 07:53:55 -0500 (EST) 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 8738E8E0103; Fri, 22 Feb 2019 07:53:55 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by kanga.kvack.org (Postfix) with ESMTP id 29CFB8E00FD for ; Fri, 22 Feb 2019 07:53:55 -0500 (EST) Received: by mail-wm1-f70.google.com with SMTP id t133so484371wmg.4 for ; Fri, 22 Feb 2019 04:53:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=xP0EP9+s7jJBuNL20aZNoIWDJO0QH7KitwsXHnWrFcE=; b=LB2PVQNc6yRtATHH0t12jbWnTs1K/uBRD5sSMxl4JH/5TRvUtr/3vlDF/1SYiNcLYz gyKXflPoPQN4N23UGjpmw3P2XH/HIiSJEOg+FxhOtQsISKiR1GUdJ8GcluNgUi63guCW A8frtC3A9st8v95r58OCDFdT6KyXE0ABpUUnFX5QHCAxRjtpNYS116x6nftWdpr78g8X pl8r4Q/Bt20M5a1b0anJ4IgUnSbhMRyEQPc8fBQdXFEsN1dbqD/1pgpFrrOTpI0FmdwH rmfkdwwLNepsqeeqDNoPYcS+TxyBmu8WiKd6mZ49JSEttL6K3NdjHIdBphSi9PdWYeNM GVcg== X-Gm-Message-State: AHQUAubzOFcS4Fq9am3FmSyqW2BVEPS39cfHy7Mh5Uv/7ftQYfB6tKee la+9AvJOosSwkQWzvEcn2nbw6cHeXExd9IZgPDBoks+hDmk0J0t8LiYXCK6x0SSz/vRVLMZKHRu xEgqT07CBFlJP8LjBJYJY5eYvhX542qSMh0eJZo8WzkfXRfYtad+/7ZygRZeeDc3PXb8ySBtmZt Jmmv57YHf31JUFMBOsccz9iEnpTd/Ofl2ZeMb5/Ub3xVv4spz0gAajAYEMNqanMwxcibC1p5zY6 knPgBPf18u29x1CBczdj8O81ILKosu6diltRHG423PpGpzE/b1WJSt2GldGLJpwc9ZCBd/Xqocf hO2zpNfL0m6EQWrcQNYe8Z9vUHqJlzMmtrs8t8Qd0oVttTfm0nZQEIgCBE3X0ZZLD0chuFsM0gy E X-Received: by 2002:adf:a49c:: with SMTP id g28mr2764869wrb.147.1550840034702; Fri, 22 Feb 2019 04:53:54 -0800 (PST) X-Received: by 2002:adf:a49c:: with SMTP id g28mr2764815wrb.147.1550840033717; Fri, 22 Feb 2019 04:53:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550840033; cv=none; d=google.com; s=arc-20160816; b=s3kEaMiPxTazeMFZ2O3JM9wq+DZ+/Q2Tm/OiBgR9LKF2UM8Ozgdryj1o4dClZ6nMLg RPsxP2LBfZblv744PhXzu6v9xTY6LvaxNHmz6X3I3uwk40M1ZTSsoHk4YrIU71TkCct6 cbj71kvRTWoFPZTNkGaZ+vY5XUquvEwPojVVx0WsO/PYMItcSXsT8pyMin6PzNPzm2dz prCmsZOg3AnFMiVJqxt591UZnc71mhNv/fFnzpV6KzxJAWaETkzZLm24GonJm/NvQSlS tpggItIezFq5UZLavqH7cgZtm4O3/r2n7uDR7zjmVeVDFuM8zmZyVwSYJeYaxw/da063 Nz4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=xP0EP9+s7jJBuNL20aZNoIWDJO0QH7KitwsXHnWrFcE=; b=mPruH/AEOgELi3+i67373M6LMc7Gh26m7IOFPPvC99vMJGDQ9m7hAYLYL0k+LjR7XX +1k+6ik3HT3cTu8Td8voG5203FAJ6GywPQ/Hug4+EpYyP7SksJm64IdZxy+zmoA/GdeI evnTXc3OSF/+ZXZidDDlHru9ufbb/LODp7Fi+jo8gzAhK9qQX2ACTZR93r+sq56nOeUE e8trR7vmKPnEfe6rC6qYBVrm1XAKAk/XNZhOgkGOejTvwI5hTvyKz6WDVaiofiL8tPVK BZbfAmkjCZj9HHDdVtKH3jJOiZV5QLHpuZY0clrZdxAK9bTVdwri56DPQ44UZOqiqC1X YQwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ngTaPZFj; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id o4sor871565wmb.9.2019.02.22.04.53.53 for (Google Transport Security); Fri, 22 Feb 2019 04:53:53 -0800 (PST) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ngTaPZFj; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=andreyknvl@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=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xP0EP9+s7jJBuNL20aZNoIWDJO0QH7KitwsXHnWrFcE=; b=ngTaPZFjbMr8UVnv+XHv855CtRTNvKpoDmCRTtKsyfuCSVAX1fHkkeEopamnkFNUkO 2AxeqdOMs5OS1aAzAdqqAMH6oIYxxx7HXZvCiuu5mGrP4+JLSS3N1MvyfwgLIUpYg7XA 36WRCDQmvGeM5dFPaSlrAtGT6lqE+t1iYacqOuNf0WL0AvYMXookG0ZRXOCwQj/yAJ64 Ava6JpCXLFI/teW898eqAG2k52RXgpD4kz9ufk+Lk99Zo8v2WsRFs8gVa3BZjwmle1GK pfRIrNVVanNCc8AEbJlDtvFhw5/QlKpS67K/2EsIOQEy8hvKVuwcPksCJr25OCE/XBBn QqYg== X-Google-Smtp-Source: AHgI3IYWY7Ghxi/h12hQKyhtNx7Svt8SN9NDulSxokwzQOKjvHqoGwEA6m30t17PvUiKofsiFVoIUA== X-Received: by 2002:a7b:c457:: with SMTP id l23mr2410289wmi.2.1550840033285; Fri, 22 Feb 2019 04:53:53 -0800 (PST) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:13:8ce:d7fa:9f4c:492]) by smtp.gmail.com with ESMTPSA id o14sm808209wrp.34.2019.02.22.04.53.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 04:53:52 -0800 (PST) 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 , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@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 Subject: [PATCH v10 12/12] selftests, arm64: add a selftest for passing tagged pointers to kernel Date: Fri, 22 Feb 2019 13:53:24 +0100 Message-Id: <8c08cda0dfdef1b062695241a6f6594487eaa3cb.1550839937.git.andreyknvl@google.com> X-Mailer: git-send-email 2.21.0.rc0.258.g878e2cd30e-goog In-Reply-To: References: MIME-Version: 1.0 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 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 | 19 +++++++++++++++++++ 4 files changed, 43 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..1452ed7d33f9 --- /dev/null +++ b/tools/testing/selftests/arm64/tags_test.c @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0 + +#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 utsname; + void *ptr = &utsname; + void *tagged_ptr = (void *)SET_TAG(ptr, 0x42); + int err = uname(tagged_ptr); + return err; +}