From patchwork Mon Aug 6 16:40:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557403 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 6D4E115A6 for ; Mon, 6 Aug 2018 16:41:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5CB6F298B9 for ; Mon, 6 Aug 2018 16:41:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5AB0B29910; Mon, 6 Aug 2018 16:41:01 +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 C6A0129910 for ; Mon, 6 Aug 2018 16:41:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B04F26B0007; Mon, 6 Aug 2018 12:40:57 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 8C1D06B000D; Mon, 6 Aug 2018 12:40:57 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 740C66B000A; Mon, 6 Aug 2018 12:40:57 -0400 (EDT) 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 0BC906B0008 for ; Mon, 6 Aug 2018 12:40:57 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id z13-v6so11440099wrq.3 for ; Mon, 06 Aug 2018 09:40:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=GegTTjbmNjbsX4HChAan54mquc/Z0XI1PkIXzAwJIOA=; b=bD2zgE9owpVoVcM+jzZuf76p5GWvtdflrdRj2N5pFy7RNPuHLplbZHb8nWD4bWq5OB O6l6G+2oHHuzNsc0kb9kmGsFhUxSfta32rUSEExVE4O1YfGlzH/woQx/lWfXpF4zLylW sdYgLydwBGolgUPdRP1F2iobB9/Tl4MN9BKI/L8jsFpUKxfWFU0+iv86OwWTctqDmYJW speXQs2GXnQ3XQF3U27PAVrTC05R8k9HkIayuV7XpQJuD5PZ0br2sTgyHxs6yVCDrZQ+ uyNs4gU2Zu/Cwns+ijetsSOvtEuveiD1BiCGPDG/J6x5RTB3VvtRk22W8C1f6Na+bEtC 0GUA== X-Gm-Message-State: AOUpUlGEBfgnrgswbGiKaLjyu0Bvy/EAJdZTINYqwNVcLDtBu9ZdZJP0 Rf2OWw+knXgRslo5Sc58ItWhFp12q4mTuEaxOeE5dPdQ4/MSDSABacxeRc4tQsmChI/81L+QCYq fjH+jKO8SxbxezfSBk9i5yRR+ddZbMRXLFfiZnPn0xwBZLkXzikf6/1Z5XOMK1ZdyGrBH/8b1nM hy0EBznQj/iNTt7gscjPnNTAFvxNaiQ56DDAYYe2Zj7zRYFlaPgzPFExj/7PwRW5oSeSNND3nxl l6cHw2uldsz5iiWv0rmvtKZnTEKG47dh5IhP90IuJWAU/hDFtIsN0yUOwsA8nmtgyFXlc9qxTN4 NbX3kXCMsCRtUcDsSSKu7MAxN2OjNSTRmqs8lWXBb+Hg/lZrayBD9ZFj9GlXdU8ft89gmM+fkl7 3 X-Received: by 2002:a5d:4b50:: with SMTP id w16-v6mr10241754wrs.87.1533573656497; Mon, 06 Aug 2018 09:40:56 -0700 (PDT) X-Received: by 2002:a5d:4b50:: with SMTP id w16-v6mr10241720wrs.87.1533573655777; Mon, 06 Aug 2018 09:40:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573655; cv=none; d=google.com; s=arc-20160816; b=N3nk0XnGYk0tG23Civo8zRHNksW4lS+YeR/s1W1CwDwPUvP4rOFspv3OPMC6u9Bm2b QbsjknzjOrn4E5pYj6p/gKBcb0qHWPO7ziiJ+GXk2nA7EyFYgMAJw8eT7RXqEF2b0E6t stOInGjxmLDwcQ6F+MuolvNU7iDGpBC6YLBFj0RcFSVwcLHapUTgzxt17bSIF0wSHBHI oFqrlodzdUcSFOM1cQytY2hmmf1rkZVlPcLG6I4JfVkpBsY7zSAJqU7lrRRreIXhxE/i ZzPUA19bJolfb6cYTSkjuLVitmBPTXoUK/fes4EP7z8ZsAZqkkN7IqGdyZPac8rN1FUj PWCw== 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 :arc-authentication-results; bh=GegTTjbmNjbsX4HChAan54mquc/Z0XI1PkIXzAwJIOA=; b=vn6cNMLFRFAScwlo5OTgwESroeU4bz8cnOleBjvO+KktJmFD+e2UB5tHm1fGGXFh7F qRKdeguiWErqPQ8JORKytgG488Hiisq4Wr1WQkNhnuxd1lK1mLUnZjdcFH+qKYeXqPsn ZlMT06pEVs+ycIqut+NkONoOKwW+q4h6F0330EiwClqNeIVS8eS3Ku/7+xWdME+j7KHt 9iZ5Kc94iTB6CUVFRNKMNCRXUOPV0yfvp/fRQ88jJEdTQSdiZD/dvLk+L3Sm/gtv0GXL GDoVwMmqWYw11C4u7RkAucwL+eG8iZtWP7CctO5aj2WxaO17bH1ciLgcGEH11lVv8g39 yh5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=vwCS2rS+; 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 142-v6sor1509395wmg.11.2018.08.06.09.40.55 for (Google Transport Security); Mon, 06 Aug 2018 09:40:55 -0700 (PDT) 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=vwCS2rS+; 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=GegTTjbmNjbsX4HChAan54mquc/Z0XI1PkIXzAwJIOA=; b=vwCS2rS+pYmdg61bP8gDqGFfjdo/PBgT6JVV1eg1zZd9Nr82b0S2clR0RH2K9s8WZb lnWNV7aUQhgx6ozlH2TgLTj8ytb3Gbl/BbeMPpAYV9WOz45c2GWctVCc+0N88H5Go1DV rD7PN/GFtJgW1ZKKhPcgh/1w3TJCnnxeios0hCtkgXFGbIZ9WiU821qQgiiDf1vvJ6Ck dg4ElQes4DdNeBtawrfXt8Py9CeCHaFfZElhvErprQq4g+cVxwUqfhrZuceiB8lvps7e evQ7YS8E34ofUmAzfr6OXPU/0Put4HaH/XQyRfpB6Tbwh2n9YjSEjmLbiSHYQZ/AAk7P bgng== X-Google-Smtp-Source: AAOMgpdCs/vJ4E8irRmzR7MSfblRn+1H6Z0RIGz3mXzRBYhElgG2TSHw5K1OwojBrGMLhngHuZnOFQ== X-Received: by 2002:a1c:a691:: with SMTP id p139-v6mr12041466wme.42.1533573655186; Mon, 06 Aug 2018 09:40:55 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.40.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:40:54 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 01/10] arm64: add type casts to untagged_addr macro Date: Mon, 6 Aug 2018 18:40:36 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 makes the untagged_addr macro accept all kinds of address types (void *, unsigned long, etc.) and allows not to specify type casts in each place where it is used. This is done by using __typeof__. Signed-off-by: Andrey Konovalov --- arch/arm64/include/asm/uaccess.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h index e66b0fca99c2..2d6451cbaa86 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h @@ -102,7 +102,8 @@ static inline unsigned long __range_ok(const void __user *addr, unsigned long si * up with a tagged userland pointer. Clear the tag to get a sane pointer to * pass on to access_ok(), for instance. */ -#define untagged_addr(addr) sign_extend64(addr, 55) +#define untagged_addr(addr) \ + ((__typeof__(addr))sign_extend64((__u64)(addr), 55)) #define access_ok(type, addr, size) __range_ok(addr, size) #define user_addr_max get_fs From patchwork Mon Aug 6 16:40:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557405 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 9B13815A6 for ; Mon, 6 Aug 2018 16:41:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B32229898 for ; Mon, 6 Aug 2018 16:41:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7F0E3298E5; Mon, 6 Aug 2018 16:41:03 +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 1BDAA2991B for ; Mon, 6 Aug 2018 16:41:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C718A6B000A; Mon, 6 Aug 2018 12:40:58 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id BAA876B000C; Mon, 6 Aug 2018 12:40:58 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 939996B000D; Mon, 6 Aug 2018 12:40:58 -0400 (EDT) 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 3A0256B000A for ; Mon, 6 Aug 2018 12:40:58 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id k15-v6so11414278wrq.1 for ; Mon, 06 Aug 2018 09:40:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YBeH5wb0hNzlivAoVU1htfthx3SJVx7ZblkVtJGW9ZA=; b=OaiTmoHETPQlwa0ftEra8Yywj9Zto0wwTgV83d+v0ax27Zpn/Y/+p00XjPTIH8Q+Ic cI56fZ3DsGxSAjjpHSRZ9WEi5qXGa9lKkb+pLFTLfyQr7hQPKs0qY+MAFxdewMJ9+yD1 HaMEFbxPz12TMu6R5Z05YNO0E/OZjFDsAbWGpCXQibuT96nsZionx6em81OuNu8VU/MM Je5jmFsPFsROdzooC0H9Lq/HlX1dIfQJfGrZ9BExetH+HynE9OKZXvJ8PAbK2O9Atfi3 jNuDXFKqaUyxZT4rSbOMGQHjWLCDiK/ahvebc/vYkWctmkkoajCcEwyGFVcVKOwroaEh zb7A== X-Gm-Message-State: AOUpUlGAw4wdEKhi2FGipleef6qfqS+yweUWiGxzyZ++WRPy0RlwZibR qcBvNC5JtDdS+4QefHDZZnqlP+N/I5dp3Sg46LgX2yApvnYvTSKdkpAAxt4kvKkRuYyU9gNLY0m okkCpmv8Efqk8exl2baW58CJP+B8rcKzPVUsdnMTTR426I+Ef7muKgVQMXc5k84YaK67hwbujw9 tVk1/BUuu2xz7RnD7Ij/c3irfTesOq3xkhVgBhLt54oDeZKbSPm/EZ5+/7ZozGWE0uduJGwkLuC rBE6nfxfb9BSSKKo1PR91c/D6Qq54LFzNzpax8X6c7+aqcpZdZGt/EOcH4xuE5iKHzsMAZG/gxD 0gku3RpTrfXH91MQzMEKXfAO/T0sCdcmoGkOU6+PqOCYu6sgbAENLg7r5t0cMURhJ8zH5FUbGn4 V X-Received: by 2002:adf:88e3:: with SMTP id g32-v6mr9543363wrg.62.1533573657765; Mon, 06 Aug 2018 09:40:57 -0700 (PDT) X-Received: by 2002:adf:88e3:: with SMTP id g32-v6mr9543340wrg.62.1533573657166; Mon, 06 Aug 2018 09:40:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573657; cv=none; d=google.com; s=arc-20160816; b=Jg5aCkeurQD52l2XbddF2rMNYOVPwxZoa3Nac7hWGcUAc8QIET7e66YphbRr2PMgpJ x40LBxpiYcxB4FPS2EQTfs1RxKHx0WwFusnqjAUQOCQZTCPCwrupgRkESZ8SX6asnCxy /sLIffHJLStScgsOppsUN7Hs+rVqgvD+OuqURr/GuPwJ0YCOB6iGEJBMYqVMjm8Ca5f4 cZpkO5AlhGDmEIDwLVpDsFEvu4WObKd+SkcIaWGVD8MYweXRBfdQmH4bW9h9TMiE9vW6 8FtrqSAWYMXSzC/S/TEs1xjBXvtLUT2mRFS/eeMunXOPbQtk+Tw3vMWZ6QNHqZ78ltUB 9nxg== 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 :arc-authentication-results; bh=YBeH5wb0hNzlivAoVU1htfthx3SJVx7ZblkVtJGW9ZA=; b=kduPk+BDDUAkGY0oMxqhZEv0INcdyT5lVlEMXB+1H+TQJ2PDO7jlRKscOW0SgUUzgh igFFm9t6Fj9VmpGxvxrNQnSbEtp96N040jF4/ci05jMxzax20z4LlkTRCzJoYg6xQyMJ EqCm1856OhXHIRrhyJTuBEZTXxbsZmVksPztyfU6TPp5sDoEWrxJ+V9PGUmPOfG2rs/U UNblwc0SjukjhWi+ajo6wQNNUcZTbcHAubqlSE1viuhIlwTqmCiBUa2OMQoi1JhjUmko gXAUlXEPhTKSN2Y9g9jNCG0ACYe/Hp1KbuqQBBT3Bno2lNhg/7FnlYydYQizEg/lep+s rzCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="ZfDD4//e"; 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 o3-v6sor4165527wrm.12.2018.08.06.09.40.57 for (Google Transport Security); Mon, 06 Aug 2018 09:40:57 -0700 (PDT) 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="ZfDD4//e"; 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=YBeH5wb0hNzlivAoVU1htfthx3SJVx7ZblkVtJGW9ZA=; b=ZfDD4//e+nKU3Jk48Adjac7R2nCCq1HmUAoIcnD0wQGnnbJdjWUlD2Aytat6evC4LS VVCRE4GradGfF7mcdUatpkfkbS3oUExjCB/oJKRWeOgr7D4ns0ZdM/ecmR+rDEiJijY5 S5Sn5a3jb2HgFLP5cDZykHlUrABGLypRXZBcf03L4NF2mJDMuWsf2I0cBuuPGn4R+s/1 lH0SekuGSZvecQg1AancsSigJdj1Yu9rEv5ENqjlxw1iJ0P7zjekaIIfk0F3yh9DLnKi TZpN0Zr9j707UzVmqzktL466xYpXyXTkduX6zmE7Ee23DujIeKOV8ZkSblww3yE0f9TH 8Z4w== X-Google-Smtp-Source: AAOMgpcsiooZAsa7Co5DL90XZQSeO75lLqOzA0ZY/k14f/rzEmHb2gPZjF9ufPSZOUffbBSYdCeBEQ== X-Received: by 2002:adf:91e5:: with SMTP id 92-v6mr10363242wri.124.1533573656582; Mon, 06 Aug 2018 09:40:56 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.40.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:40:55 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 02/10] uaccess: add untagged_addr definition for other arches Date: Mon, 6 Aug 2018 18:40:37 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 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 other architectures besides arm64. Signed-off-by: Andrey Konovalov --- include/linux/uaccess.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h index efe79c1cdd47..c045b4eff95e 100644 --- a/include/linux/uaccess.h +++ b/include/linux/uaccess.h @@ -13,6 +13,10 @@ #include +#ifndef untagged_addr +#define untagged_addr(addr) addr +#endif + /* * Architectures should provide two primitives (raw_copy_{to,from}_user()) * and get rid of their private instances of copy_{to,from}_user() and From patchwork Mon Aug 6 16:40:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557409 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 1534F13B4 for ; Mon, 6 Aug 2018 16:41:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 04AC929919 for ; Mon, 6 Aug 2018 16:41:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E9C0329936; Mon, 6 Aug 2018 16:41: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 7AEBA2992D for ; Mon, 6 Aug 2018 16:41:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C20C26B000E; Mon, 6 Aug 2018 12:41:00 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id BAF396B0266; Mon, 6 Aug 2018 12:41:00 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7B3DB6B0010; Mon, 6 Aug 2018 12:41:00 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm0-f72.google.com (mail-wm0-f72.google.com [74.125.82.72]) by kanga.kvack.org (Postfix) with ESMTP id 0D4BD6B000D for ; Mon, 6 Aug 2018 12:41:00 -0400 (EDT) Received: by mail-wm0-f72.google.com with SMTP id z23-v6so9642862wma.2 for ; Mon, 06 Aug 2018 09:41:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WADZVauYt2+vN10op76v0l4/uhmUIRsYzVe9gnbEQFA=; b=Gh/4RiLQwtAqMzPeueHgdgTXEx7+mrJENw7lfjFYeM4PT7KH0romBaw3Dgdj7OgUN2 FYCgFnG4JO9xFrReXEq5BUnsd21p/697iuyV4luybumyA/YlGXpusoOGGAjOocUEnJyf DuC7/YGLMInlpMKSlR32cBKJM/Cd+RSGZ8sY4LZHp5V8J/6IrCbPOG7z+1prueIekyR5 uDnQ/zCK63Zn9xy5/zX6wq8gW5dsHkQD3qA9k7dyO8NWMUCzAovaErBKWsWXJqfmc5dD nXxBolTu+CyNhbs9hGWsK8B9dJbEbKF6yODD3DFVArkJKTBh5F5ecWYxq1+GW7NiR66+ JQ0A== X-Gm-Message-State: AOUpUlHpTy0jwLtTsFOa1McV9N1KcAtq5MWL+aTdRxjVijvPGaaRUIW+ IFjxgZs7sXkEVoK8f0t4xfhlGLELBXGcgIy/TyZ1vrPwnCWXP1Lt02Uy/m/rz71xsZIMYmW/lPy sdgZEhUNRz3sI5XIoJe7tAL7c/REl6olubtLL9wAoquYcnC7gx4GpSl2sAnROMu04C626h8qBGw M9ypq5ySFwpmFls90++qpsw561fFBNvephGysw/IVqEhR+knwzJTEWA//HyPGpig8yGfXFusliA UrVqGlt6MYDVOaHjl1434yv+7AFx9fUgqxb8B0LW52YM+ekDsdd3XSzuL3h6IDCvKe0MzJWEnsw Lsob4vUdNpThoRG/tLfvGyC1DwW/HbkXUPL591yp/rOcgDgJKoojGpm5eSupB/Fs/s+Yqu8JEL8 4 X-Received: by 2002:adf:a29b:: with SMTP id s27-v6mr10306855wra.100.1533573659584; Mon, 06 Aug 2018 09:40:59 -0700 (PDT) X-Received: by 2002:adf:a29b:: with SMTP id s27-v6mr10306823wra.100.1533573658663; Mon, 06 Aug 2018 09:40:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573658; cv=none; d=google.com; s=arc-20160816; b=TnvDUmvPx9mHYanKXKGj5/0Aj8QGl0ozgsG2Gz6rKtQ4WOObG7VLUHW+9HTwyf3BIG Up4Rg5nFWxtYvGk7GMPdGtxULbwVn8RhKdEkeM8g2kzPYFf+cZJNUPiMezsALomUi9Vf QMxm4f7KBjB8F2UQreA7mmucl9LSQtndIN5JXlknkZWVT56hzIpQPlcBmbCDx3W25NkB HEcfoda1q6Y7t3FtJFXfjA5jO3fI5RwutSB3nMIZhsS3OMynNY0xzm1mS1nyyZE42nQV n/qKfmorM+ELIyOjlp86fngPeBO6ZCVT6LfZLtebumFl7E5MnIg+hzMYtazNbxP/lSJY 8SLg== 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 :arc-authentication-results; bh=WADZVauYt2+vN10op76v0l4/uhmUIRsYzVe9gnbEQFA=; b=TtuesSh8jPSaEs5V1Qv/Bws6jeTiorAcyE/r7rjg5tmIFkCdXXKqs5TmHDxRY30ajp rMpDiYFJ9q4Y2taUwUFKXr1D2Pi6orBzkBNV9k6pesmM3mVGQrGTKgw8A4WSjq7dkcSX R/Wctk3hACGziy+FDQZUAZRD6K5ZFPZIvFQyRdy+TxuCFf8N18jA03Zoca7uLzRM7Vkb bBldpQUhL8FvYuftJF8cTfbiU903sXampIFZvGjFz7oBIZx9hlKl7aada1P+oM6Rsgz1 Og3enK5NpWZYMEi+Gz1n0vX6fq8xSq8NYaiir4bYZPlZKfEbN0EpgsDnlEqrqghPEezY GsRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=hY19VVlN; 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 r10-v6sor1670160wmh.19.2018.08.06.09.40.58 for (Google Transport Security); Mon, 06 Aug 2018 09:40:58 -0700 (PDT) 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=hY19VVlN; 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=WADZVauYt2+vN10op76v0l4/uhmUIRsYzVe9gnbEQFA=; b=hY19VVlNC+aT5T0+2ijd0mPFjapVd6gfqUj0erw0EDOJ7eBmW+Z2x+XRfZD5O4Ac94 3I63n27oCUcp10sI/R6BhxKri6mPzwVCDsDOb3SWT19hUTxakDBMMYxpjSdnaqFuVuLc bpml4I6XJiFT2ngv+DVV9M2GX/Dx2Z7qOxaYHLhvHwuI7CE/9/5OFZL5C0FrKLsuBTup FKle1LaLfIHzrfWzOuj2ESOMv/mfS1XGNWkuASeMkcTFIcbmIBjb+9eD3ytrtzihsmpN Eh26t1BM3+6TAUjrYud29s8Qagu0ISZ3YeQG4hAkl/UkhkQfGbdL32tE8/Q1VI+PBaAb MdHg== X-Google-Smtp-Source: AAOMgpckRAYy9vorc4eMVCQ1Uc5x51WbaAcr5KT0f6sPPmsBT/dX4REx1PziWt7qxPnzxNWYQXu1Yw== X-Received: by 2002:a1c:3314:: with SMTP id z20-v6mr11558447wmz.95.1533573657895; Mon, 06 Aug 2018 09:40:57 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.40.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:40:57 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 03/10] arm64: untag user addresses in access_ok and __uaccess_mask_ptr Date: Mon, 6 Aug 2018 18:40:38 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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. Signed-off-by: Andrey Konovalov --- arch/arm64/include/asm/uaccess.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h index 2d6451cbaa86..fa7318d3d7d5 100644 --- a/arch/arm64/include/asm/uaccess.h +++ b/arch/arm64/include/asm/uaccess.h @@ -105,7 +105,8 @@ static inline unsigned long __range_ok(const void __user *addr, unsigned long si #define untagged_addr(addr) \ ((__typeof__(addr))sign_extend64((__u64)(addr), 55)) -#define access_ok(type, addr, size) __range_ok(addr, size) +#define access_ok(type, addr, size) \ + __range_ok(untagged_addr(addr), size) #define user_addr_max get_fs #define _ASM_EXTABLE(from, to) \ @@ -237,7 +238,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) @@ -245,10 +247,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 Mon Aug 6 16:40:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557411 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 B74F915A6 for ; Mon, 6 Aug 2018 16:41:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A42BA298B9 for ; Mon, 6 Aug 2018 16:41:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A20EB29919; Mon, 6 Aug 2018 16:41: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 4AA34298B9 for ; Mon, 6 Aug 2018 16:41:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AEA016B0010; Mon, 6 Aug 2018 12:41:01 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A26956B0269; Mon, 6 Aug 2018 12:41:01 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 56A046B026A; Mon, 6 Aug 2018 12:41:01 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm0-f71.google.com (mail-wm0-f71.google.com [74.125.82.71]) by kanga.kvack.org (Postfix) with ESMTP id DD9026B0010 for ; Mon, 6 Aug 2018 12:41:00 -0400 (EDT) Received: by mail-wm0-f71.google.com with SMTP id y18-v6so9499720wma.9 for ; Mon, 06 Aug 2018 09:41:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uFRCrIeakYIo90pBPUFlidHqpT0Hqqs6ARXRy/1gDrE=; b=sow5b/5M9l6uc3Ix7I9HiWQg/9NW97qPcx76/WsercNMw/N3ZWDd9LQ0KZpcDNzpIC ufBPHBL1/DTW23UK5YIV01a849B47wZ36Z4Rxe780ffBwQhxrl7YHorb12devUSchX6M fE6n926CCYl6OaouLh6aSwpAuv4PvKBeQHt8pZTC/TCqsfGYYl1VPIUgHobb7iJPuczK d5F1gSEjlKTzPoY56UVrctC6T3i3B0WYTbpJXpMLbLZ/r1eXwdFEB4LIB0hVesE5/bu4 hiZGTgebhTQX3u6X/ROMmoy2P4/bdTORgdCbNz51dhbyqm1Yj2vM0WqqkAOqgPcOD5RW AtZQ== X-Gm-Message-State: AOUpUlGao/hYWVwFuxv8BFLELlrKfrcqgx4k8G4B8teKvZGw52zJbKuz XpjGmjLHl/ZfRmuHkvH6lcNRsXPRr1HLrLyL0vJvAtaIFVntbzOnEIU2u4ECfRNxvSQI1UdcA+f 139uf0QYOI1Dqg8vH9bir+uZDvaL46i0j4A6Z3Wic0kM7pBXljTFzlvHtB5Wj8Gr/SjOtlXg4J/ SWo3uvq8TCGm4age+I0hPfDQ1U+Nxa78SN3xY8nnNd7cCe9o46vJhnRICIqZiy2IwEhpICIacWi dCSVAamsYX4nvajwGDgjFzS+58v7C/kusnmvNDlpMdbKPIzdbZbf0UKxraGEd445gJnH5ru4ApO KknAbLf83ZasmR/E3C9hHpjruV844lCzLHEE7XqmLvP1sEemmmjC1RTu/OaGcJVPhM3d0kbSHh1 H X-Received: by 2002:adf:a29b:: with SMTP id s27-v6mr10306893wra.100.1533573660380; Mon, 06 Aug 2018 09:41:00 -0700 (PDT) X-Received: by 2002:adf:a29b:: with SMTP id s27-v6mr10306864wra.100.1533573659805; Mon, 06 Aug 2018 09:40:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573659; cv=none; d=google.com; s=arc-20160816; b=V1nZeodxu8rzMIDZMPA7mBC2UJzINHwoKG4Ic+VCZWv2pIIz2fd9C+C/VjuRsgT5rD EhEbUXLm7euuQLVy5hcueoT0bEN1KD9Y+W+tegRUnYGhriR4sGhiHTg17Ks283r/rnw3 N/7wJogmHZlrthC9rmQ+0cQfEDb5lregg87+Hk3qDyKiUVV7hXXbP0zAwNydBlD57wub Qn2AZmOmhSjfEMsV3Zn+Ei24ByNRgyZF9blif7rBNdh+fBguQJujtGFp3VRdhy9SSQGX L172utLw7sYppBDrVri97dc3QLr7x46QBoiasABbegiVP4gHRyUP+AU1mRK2bry7rIFj d9xg== 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 :arc-authentication-results; bh=uFRCrIeakYIo90pBPUFlidHqpT0Hqqs6ARXRy/1gDrE=; b=wC1O6151aipRfZ53h877Re40eXu0T41bgVA2+I1sm7ujxhiXhd/5uQGGdnCuOfcUCO JM4di+dFkjHJyC8SeMZhw+pxlCPKJ91vKdaiJFoPlSMVV1txzlumipgfWX7+4+ZI9XS+ 4ldw7AgRKXoI/HZxl7ktkLg0oRsuULkG/ctwmcwJIQZjYAKPNzqlU0e0PT6gK+rEKu96 ArbHXMQ2apoanO0wOF0FOVXUNRoKE2SHHPYauqn5tY7kyFDLIb5fesrlj9gBnnDPiSqD jXCVP1hC3pDL9V9nl1f40Ynbg1ueebAb1bxnd5dkIngvl+JGeCsr3YRIL/8xVFD1Z3zq ao4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=AX+6UEOD; 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 c62-v6sor1501728wmh.60.2018.08.06.09.40.59 for (Google Transport Security); Mon, 06 Aug 2018 09:40:59 -0700 (PDT) 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=AX+6UEOD; 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=uFRCrIeakYIo90pBPUFlidHqpT0Hqqs6ARXRy/1gDrE=; b=AX+6UEOD4pChSsOaVJW9/HUmRY/Hud5HGf4nl2GADVcqj7RWjxiy1PFox5NDqoN3dO vfpNrriAJ6/Xv52Jjqyqc9GZabpYl6HbtIODPOr9wrot2mbZmq+FrgNtfun2vMh/n8f2 0C+SdMEFuWM5HRB7mTci48rybim2ePdWLxmoLET2gDdHVHgj6mmFfrEeaa1EVkcYnlhF K8cnjvJpET1k5OuNulN1TWP84QgVEtmWHZI2SiaPQ+4Aa4nJvZkzmRDejbEC8H7Bcu/a zEh/B23/FKOADejZqHo1wu+YxSnPzMHo8lGXhQkK1Kl7/IzBtzMyTM9i0BHxg+uHp1Yg rCnQ== X-Google-Smtp-Source: AAOMgpcfIK1v5kRJhsLZ34SjY23HZ47OTWWZVSIMkNKjxkQyM4NJfzwreb6Ygxh/ZoTjJ068qYgKyQ== X-Received: by 2002:a1c:f03:: with SMTP id 3-v6mr12283207wmp.129.1533573659155; Mon, 06 Aug 2018 09:40:59 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.40.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:40:58 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 04/10] mm, arm64: untag user addresses in mm/gup.c Date: Mon, 6 Aug 2018 18:40:39 +0200 Message-Id: <64762ca688f8611c38cf6a8c8bf50a75d9f2fa3a.1533573460.git.andreyknvl@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 fc5f98069f4e..ebb87fb56709 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -666,6 +666,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)); /* @@ -820,6 +822,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, struct vm_area_struct *vma; int ret, major = 0; + address = untagged_addr(address); + if (unlocked) fault_flags |= FAULT_FLAG_ALLOW_RETRY; From patchwork Mon Aug 6 16:40:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557413 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 B6D0A15A6 for ; Mon, 6 Aug 2018 16:41:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A73292991B for ; Mon, 6 Aug 2018 16:41:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9AE0929946; Mon, 6 Aug 2018 16:41:11 +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 03B402991B for ; Mon, 6 Aug 2018 16:41:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 741D46B026A; Mon, 6 Aug 2018 12:41:03 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 6A6626B026B; Mon, 6 Aug 2018 12:41:03 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4825B6B026C; Mon, 6 Aug 2018 12:41:03 -0400 (EDT) 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 C27056B026A for ; Mon, 6 Aug 2018 12:41:02 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id r3-v6so8972313wrj.21 for ; Mon, 06 Aug 2018 09:41:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NHhNjwTAQ121lFvWu3hMTAeIOaL1SqLvmyhWDld+/fA=; b=Fv+k/H89LwrZfCU+n4GVVaJCw8lpisD5/O3arioWqoY+yl0qPLbilM055Cde3h8MKG NthCwLxjL3KK16SR9ca2lbynXgf7EySUo10nHo4EQEN7LcHmpxRiG6UgEZMN8H5kL5cg I/t0illE/UledEqcS86y55gJcIttV25xYuXTtE+hFpBstPeI/qfh9C+rQD3VTY1Idzae rS/L+68FLvqXBboQmf2ZL5jjfdMelJe6499rsx1wovNSkdrWxE0maAVCOrN0jyiIE/t7 BE23roNqPgdgQa8sm10rT2qKRbsriMcQ0x6uI5BZg8fqHfezGIVfPjfQbfiTvG8H3gX9 L2HQ== X-Gm-Message-State: AOUpUlH02IV4P2RKMJvXKB1yA0idu0Oq0Wk+iNYkCZhVacZyFBYj1vvS Zt04P/yjBs3xRZ8lREZi6Ce/cvZ2DQWVq7F1IrSoZOWA0OHrX1VsEWbVsm+6+QgDRtA2E11Xeou 5kdvUj8dQz5N0l9NqCo4PXyM8EWqAMvc9ip4ahS+vPJ+2A99zw2ILtiYZ/VjIHuMfnEBS8vPiU+ j1K2nau4OycqUCV5mcllyWrPz/LC1WmruPkA+ijLzsc/ZX5C7Py7oXgLJ+ebJ2OFVyjnSbhpZCF i3vSbct50Mz2uACCJEU1l9R4iso28vtwv3SOLaNk7XCI4SE2pZZKqz1BTK2fyoUnb5cRQ+Em8DA Cew7euAJsGiXPI0sv2paQrMliQWVrIiICOihhtzUniuKSDx2ZIgGyUpmwoSSqi/UW0HKqIQOTH3 6 X-Received: by 2002:a1c:4182:: with SMTP id o124-v6mr11836515wma.101.1533573662311; Mon, 06 Aug 2018 09:41:02 -0700 (PDT) X-Received: by 2002:a1c:4182:: with SMTP id o124-v6mr11836485wma.101.1533573661187; Mon, 06 Aug 2018 09:41:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573661; cv=none; d=google.com; s=arc-20160816; b=jf09gAl8WhLphjVs2mRjAbJTbv3oOK0MicFZOsc4JrnfDjFJOEQQ6ElDLK+i0DVnhj s5QrcD82yqVnduToIsEa0aODEvpEp8E9DP7GFQST5mvtG4TL0X6TojK8EP7vzSlnnaJS ZU4hdz3FEayMT1RzySNwBkBl1UeXqyfeSOVFWqZylECgQePqgixulIqM4rnbd/6FF4PW +Y6KWzk1FBOdrRerlLFY67MVFgkpR7xZzdRHNHvgfPluqYILwQR7wUWI+2Xp5JHwZ0bS zNOqm7UDEiddPbDuqel282mBR7Qp4N+02BKf+Skuh5JAXXsKHSq9so6DVV6eo1oJQa2x nT0w== 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 :arc-authentication-results; bh=NHhNjwTAQ121lFvWu3hMTAeIOaL1SqLvmyhWDld+/fA=; b=rhdd4/n0vxKJIMx302+nm+HaLwpx9hBqPwCBwM3ACdiq4lUVAd/zUeCZ8vLOdAVjdB p45uDTg/gpjhNkdoVjGaascRqlQKnydWLLg4FcdNUleMI0jA/zzw9y+80tL4l7MbWSFD lCh+uj2fdD8Dgnk4/2SVZTTpivtkf64dd+PdxdvSngqo4IJdUe6u/YbnR5ffLRdf4xjs FbtOR3T7RvLmmlzX+TSkk61AflvTim8MkgUkiPvezNPMYQjbb5+I5w4NWOzptcFQS5Sb bcPhq3Z57A032xljEnd2Qal1FHGe9G6WsmQyup2epi/O7XPoPHUTAQMf+sDjG+PaxZyK SF0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nmzurxSK; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=andreyknvl@google.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id p6-v6sor1474241wmh.17.2018.08.06.09.41.01 for (Google Transport Security); Mon, 06 Aug 2018 09:41:01 -0700 (PDT) Received-SPF: pass (google.com: domain of andreyknvl@google.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nmzurxSK; spf=pass (google.com: domain of andreyknvl@google.com designates 209.85.220.41 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=NHhNjwTAQ121lFvWu3hMTAeIOaL1SqLvmyhWDld+/fA=; b=nmzurxSKJcYDsYV1+eQXo1AFKsb89KkGcBuugkQwRDCSRWjpnPT5FmuaK8hAnWtRDA 8/kdbUdOeJA1T1BUmRPPsYuEcN3Kf4vSMrWGCIeeWUORWVyj7dCOJBssyjuH8JPfu5d4 oo9z4xhcuG4G4MuRRRIMSo/OxcZmT2KNXiczN+sEe4P2Pm/xXP4k9NmziQ6vBFSg4gYw KSvZQ0EjS6wIbckSFwBHy7RkDJgcDfgN1QmlhoruRTi126+u8b2e0oSpg+Spg/tf2+H7 TKeHDNyXPqvg8KF+N5zbST5JPqKK0xbhHR/FCBhGHa+94zaC7S4DCqWFdC5El1TiFThF mylA== X-Google-Smtp-Source: AAOMgpfcqP6DQGXwm4G0u2QWpeaFGKnbiUme9+ppvLZU345bSzHiJYtDTNzNNLOci83AySBymYgP7Q== X-Received: by 2002:a1c:7e92:: with SMTP id z140-v6mr11662280wmc.48.1533573660613; Mon, 06 Aug 2018 09:41:00 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.40.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:40:59 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 05/10] lib, arm64: untag addrs passed to strncpy_from_user and strnlen_user Date: Mon, 6 Aug 2018 18:40:40 +0200 Message-Id: <6a59f7eef9a056c632a515a3a51ade3f6420b462.1533573460.git.andreyknvl@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 b53e1b5d80f4..97467cd2bc59 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 60d0bbda8f5e..8b5f56466e00 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 Mon Aug 6 16:40:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557415 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 1569E13B4 for ; Mon, 6 Aug 2018 16:41:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0576429911 for ; Mon, 6 Aug 2018 16:41:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ED95029932; Mon, 6 Aug 2018 16:41:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8BA37298CA for ; Mon, 6 Aug 2018 16:41:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AEA7B6B026B; Mon, 6 Aug 2018 12:41:04 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A00BE6B026E; Mon, 6 Aug 2018 12:41:04 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7679A6B026F; Mon, 6 Aug 2018 12:41:04 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm0-f71.google.com (mail-wm0-f71.google.com [74.125.82.71]) by kanga.kvack.org (Postfix) with ESMTP id 094286B026B for ; Mon, 6 Aug 2018 12:41:04 -0400 (EDT) Received: by mail-wm0-f71.google.com with SMTP id h14-v6so9558546wmb.4 for ; Mon, 06 Aug 2018 09:41:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5fRpq50lZXJwhRR4cll4FW2BMrTPAWBgy5AakciCwzI=; b=FK3wZsVegi0KP2oFafPfFGzINpWhjLlBheb3xl6QDW1jpDKNNhbrCM2KNlU1+6s9ai QkWT1qFA2uXJTTgYIa+PIQfGp1Q/QxqaefV/Bn88AdrIWFBBfttkvF1izyNbc08o4Mgz BBif6dpekv17QaI+6eo5Ikl3zbGfO1ess6sPThtM3YTU+kAXA8fkjCoE4DEZh+k7+spv cZTwdYJbl7hBYG4XYxAUrYPW8DgcQfKIHiha9EzyPZbSFggk44Eva6RlsttAQ8VxfB1y tpAfwXXZXdLf0zKSboEub6FyY0sHDbRgJP6P7p7r8TezXEsM+wSaj7EAWPHtIip1X284 2FWg== X-Gm-Message-State: AOUpUlGKvev3+0LIC3TOpuoDr8frcXqlKernc1PMbM0YhDBo3hWXDeZD LkxOpu+lkabm2cnMSwYwEsQ6xrrDOefA/QJGHB13H+338OLuro+uf49j5OGF+oZgtwDOo+4vyRa XeKXF6n5He9sn9NZWCe5DKp9pCqZSJiwGS448JD0+hDW3TlJd+dnzCU71eWMCbC8X+Brraic0Fa KcY9SPDI/iXJwoTKp6v58sfvI3whTofYLvaUkj8oLs2E/RXlxgp+D8UAGZt24LJY95gxjGZzns6 Om2UgUFqIf/Tn7fR5/z1gK0Mdyioz17FQCcF5PuJIN65TfAt+FKqVGo3/Mf6EEwj0SeFYNQFp0t IJ18A2hUhYxoqYzA3AIhOZufAF98Bxm0EbzBl8Cxfzu1kw1IYCOVZfHi2uTHgszVSPmAkRypT1b M X-Received: by 2002:a1c:1203:: with SMTP id 3-v6mr13023351wms.46.1533573663554; Mon, 06 Aug 2018 09:41:03 -0700 (PDT) X-Received: by 2002:a1c:1203:: with SMTP id 3-v6mr13023321wms.46.1533573662814; Mon, 06 Aug 2018 09:41:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573662; cv=none; d=google.com; s=arc-20160816; b=LlOGS6bl1xuwqKPgK3V1i534mw/ZEqhj9q81VraQqCIg5A6l7FPHXOLydaMCLMK+V3 MaoWuPNVGMrcvdNbu+sUaHRhMwG4aUJErKIjSWUdpD5CEYXg5wTeSRZhyblZL3LigjWX PrYdQYAI67bW47aaSoT8bi8iq6icOSu0DPBBTzuE/2fdZpabmIX/+xfhMWtsDDE2d5Vt 3MxWcTQ0oTr8xmZH3NktV9qD6cBNFTdwucVa25hQU0OI973ad3L+LnFjmlU9t/qGZG/e rypGbhq42s6ac5l1eMuBAfxGH7kOzveQQ9FrS8G0dCoN0lhunN53htE943epRRe5PZMX FB0A== 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 :arc-authentication-results; bh=5fRpq50lZXJwhRR4cll4FW2BMrTPAWBgy5AakciCwzI=; b=eWwHXrFKA76iRrhy8WxhsKVpFw2TZjjvGAFSTTHVPTFL0cV+IEYzTGED6Lsxdb2k3a VOK9OALUyGon+PdOm542JFGXPV7teQJ+aqeiyv9+lGRRDv5MuwLgY514nQaJaCD7mmBk M6PTgnoPUPbp3EkC9HpBphDN0Is1/JWSaS3P0VGELHxYJdWwzTxRG5AtG+PM2M2ayrfs 93iFwqVnXM9EQR4ZCRZenBM6sFgiPiWfVYVgWBnAw5KV8bRVmV7kFSEyheDrLjVLpqEE nC91n+j7BAvGhvCbvlS78f6C6j4nItyxy9cLjeFRZImeRuyXA72NVlbyOqcQ60J02lNA FotQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ZGPkGAit; 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 f192-v6sor1632732wme.58.2018.08.06.09.41.02 for (Google Transport Security); Mon, 06 Aug 2018 09:41:02 -0700 (PDT) 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=ZGPkGAit; 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=5fRpq50lZXJwhRR4cll4FW2BMrTPAWBgy5AakciCwzI=; b=ZGPkGAitVZH43xaGKInnHdd7n/tyNFXUzL/qaHmZCe6+KqfeJS77EJC8jpTGmiU2SO FzBsG36dBCTrIkzWu7kBkjDSJ5fbo9HzHHpwULu2+NoF4YKnPx2mMKqPQ6pAqaU+lAht KS8yf0vS/2EMM6y6c5ON02j5qVjYR1ZgccetnnSEPi1qy0nKoCNXeGe3MBLWUTVcG4y5 ZfZSGga8z9m37aTIH9e8f0b1iTeoQe63qTqsPyBHuvsvnOwmUUef0zRMpeqgFq8qOZTE KCQcpTxFLAh5tLjD/wxtGyP600A9uQuSjuRPT2mpi2rpLX/7Y0KGnc5Icm5Qoz0w3r+s oyqw== X-Google-Smtp-Source: AAOMgpfY8aYVRq098HPSl5HcnHIV9H6zFUoOXHqCl8eBn+piyFbVnG/gEtDm0yEYaeKPInUxDQL8Gg== X-Received: by 2002:a1c:4405:: with SMTP id r5-v6mr11514009wma.4.1533573662204; Mon, 06 Aug 2018 09:41:02 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.41.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:41:01 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 06/10] arm64: untag user address in __do_user_fault Date: Mon, 6 Aug 2018 18:40:41 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 __do_user_fault the fault address is being compared to TASK_SIZE to find out whether the address lies in the kernel or in user space. Since the fault address is coming from a user it can be tagged. Untag the pointer before comparing. Signed-off-by: Andrey Konovalov --- arch/arm64/mm/fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index b8eecc7b9531..89033d992d28 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -313,7 +313,7 @@ static void __do_user_fault(struct siginfo *info, unsigned int esr) * type", so we ignore this wrinkle and just return the translation * fault.) */ - if (current->thread.fault_address >= TASK_SIZE) { + if (untagged_addr(current->thread.fault_address) >= TASK_SIZE) { switch (ESR_ELx_EC(esr)) { case ESR_ELx_EC_DABT_LOW: /* From patchwork Mon Aug 6 16:40:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557419 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 0536213B4 for ; Mon, 6 Aug 2018 16:41:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E875A298C5 for ; Mon, 6 Aug 2018 16:41:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DC1A52992C; Mon, 6 Aug 2018 16:41:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76F6A2992E for ; Mon, 6 Aug 2018 16:41:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40BA46B0270; Mon, 6 Aug 2018 12:41:06 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 3BE616B0272; Mon, 6 Aug 2018 12:41:06 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 171D66B0271; Mon, 6 Aug 2018 12:41:06 -0400 (EDT) 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 92CF06B026F for ; Mon, 6 Aug 2018 12:41:05 -0400 (EDT) Received: by mail-wr1-f71.google.com with SMTP id r3-v6so8972421wrj.21 for ; Mon, 06 Aug 2018 09:41:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YhiwXQETzFyRuKUoiUientUUS69FHU4d1USosDKGiBg=; b=Y9zkJ6sVv2l3fEu2CDjEXV5Yzu+6r+a3XFAzzojiDW3Iz8lkT5VugmSZEpr9ed3LVv 5g0iYHzB7hD6qFe/RlOOg5LWUYQBFpGB2SV5mEE//+7uyMVcoZK6RIBEsL2P6M4XaYAk mqpML985cdgJB80o7lq/KCP71GS4aoO7jdZr09fzOoyEM4pQJDmhtL4UAUiG5P7uu1jK trAPnHkGkWhmWDe5YG8IKyxyFzY9WjBXGt5yyKHuha8jHpd6vxMGU7I8wGxOmPx7DtSZ fZXL87vqtC6FR7xWqxUOvz1OIdny31ZJ5c9AOotkm9WgIRcLf4DKdqcZCK0i0qYqAsMD NJUQ== X-Gm-Message-State: AOUpUlEMREOHDIwb0QYHvq9TdbtUpziJMy0owDqeZFMsT0XouExutRAU E3WQbc7wZYtPpH8g6lTsAj5Qetov/OGU8oazEXCiMfhVEdH5YHRy5oRZiF89WzXXIZYk+YBXMYj 29K7M8SZWLuX1cEcrvn8kdklYoSByt78AFENLnpmbLK9yKqGuoZBCJjviKbVE2HkmtPrwT57sks ysWFjtAKqb2FTc1lhag6hjKq11fw04KXQqaDhQZS9+AfA4mF6A/28EGKERBH23J1D+4czu8ct1/ C4nL3gCfLBjuUk9Mz4t0R6MJDjY/3OpbUgqNoP7OkyRFaDDdA9x7y8ZLJ2RyLiklb/XmLliOOOW XF7QJ4jS3y+cH9KvQGuaFIUh76X9oiAcYpKfbtLMWLPy91zir+TxpPr7NqCHZi4U1Vr/PwDMcKg W X-Received: by 2002:adf:99ea:: with SMTP id y97-v6mr9943068wrb.215.1533573665026; Mon, 06 Aug 2018 09:41:05 -0700 (PDT) X-Received: by 2002:adf:99ea:: with SMTP id y97-v6mr9943048wrb.215.1533573664346; Mon, 06 Aug 2018 09:41:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573664; cv=none; d=google.com; s=arc-20160816; b=I6vcAstgmxMQz48oYTKeyrni+h5qLoC60ZLuW+W01l9ak9Z4c8B+u0snjpoGm70NKm cujpREhj9Hua4TICBpICLhX8a2wryHfTC3WNJQXOFM2myHmE7caRqV65NoI2NK0bWJBd KO7p6xmBFWKCLN1xmknaSb/NW1GMQwJNa9fIVbF86N0+Ofp2z39PvVfc7eMlFGLY4/uJ dSwkDxAFdgEk8PmHG6PDZFtVS2pjJlXBO6Lx1BlCf94jJszESv6Z4NMhFC9nSQ/j6hY7 wduV9onfpPc4xTuwn+F4DBve2Q5uxM9WVcnS+xwvn4d3eJuJeiPlvXX900Fxa9wWHCeG A7gQ== 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 :arc-authentication-results; bh=YhiwXQETzFyRuKUoiUientUUS69FHU4d1USosDKGiBg=; b=r+OY7mmlH4u1UyiO7+wxFo95YcRtW6uk0M9CCug7saINUzE0Nc/vFzZ5pHFhtW2n+X gsF4+xthg/T4XXgRat7EJlrMIZm9k6MUoe031oqHtCMo6PmgjLhiw/zTgI3o+WHt78fI vfZkR2saFgeBofWBMVR5Wk9OqjK4m0dT5b46CK4LTLd+OnUuyvlsnLroMIRI+T9lWyh2 zlKOyDbF5T7Qh6sF6ucFcu6WAchkZDNzb0hwZQvobs9mBvD+Ys/DUZHvoKuK3z8fRF8P OT+9NNqLmawtEp9mk3qbZuemOiVo79UUTYYiBsaluwxchZxAXQeMhgsk8xzer4JnSUL2 Oy8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=TdFiCJWQ; 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 16-v6sor1649685wmg.80.2018.08.06.09.41.04 for (Google Transport Security); Mon, 06 Aug 2018 09:41:04 -0700 (PDT) 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=TdFiCJWQ; 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=YhiwXQETzFyRuKUoiUientUUS69FHU4d1USosDKGiBg=; b=TdFiCJWQV1yY7auvDE3OMD8elRn00ZYfTJx5VBDb0vmH70JjcnkbCr00a2DIqbTxkS u7P78OkVA7gQ2mUn3ucxrt0JtyrX1cqTglzaw1x/dguRXxGb50g/t8CD+nUQK1HGE0Zp glmM2eLYnNtONsT7coR0+ZV/xEq9YDzXdaTDB163co13OWzCFpLqTdc6t/n/9mu5/ri7 jX1FY0jxM1iC2UpEDrLPzuZMntSNz0ZVEPRb3jD0WGCqCJ9fJXFePlZnlDJrBFnRiOvN tvYvAMZWoxtpd7wNSEtF6rRizE0sA+pJRhf7h3xozmr3qrKnhPbxGuFUAgAjiDuMzDpo Jisg== X-Google-Smtp-Source: AAOMgpfgr6iQdZfaudH/1Dxp198cQUe5jRBwkr+pUFpoQTY/gYwoncrlREotSNcycesndSR3fYlmIw== X-Received: by 2002:a1c:6d9a:: with SMTP id b26-v6mr11379886wmi.74.1533573663633; Mon, 06 Aug 2018 09:41:03 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.41.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:41:02 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 07/10] fs, arm64: untag user address in copy_mount_options Date: Mon, 6 Aug 2018 18:40:42 +0200 Message-Id: X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 8ddd14806799..fd070e65e529 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2733,7 +2733,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 Mon Aug 6 16:40:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557421 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 8DE3413B4 for ; Mon, 6 Aug 2018 16:41:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D24E298CA for ; Mon, 6 Aug 2018 16:41:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7AE162991B; Mon, 6 Aug 2018 16:41:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16BED298EE for ; Mon, 6 Aug 2018 16:41:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D6786B0271; Mon, 6 Aug 2018 12:41:07 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 8ED776B0272; Mon, 6 Aug 2018 12:41:07 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F0896B0273; Mon, 6 Aug 2018 12:41:07 -0400 (EDT) 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 F24A26B0271 for ; Mon, 6 Aug 2018 12:41:06 -0400 (EDT) Received: by mail-wr1-f72.google.com with SMTP id 40-v6so11111356wrb.23 for ; Mon, 06 Aug 2018 09:41:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=MRLVSCH0Nl1kzAwRQQajvguDlRs+/L7hQOGZ466Yf5o=; b=k8aHxpuM1Vj7WNCbZG/mxuwV4YSxWrPWj0CUdGWx5gSwXhCJvBAilkGRCxD/3QyVkT bSoz9f+uCXEdBbBd1DwoYEb0JXwnWpL9ckXKiyoSpLS88vkHHQm7s7CWFTP5KjcR7/9x zK3m6ZqpwaSmM/1CdRI2t9ng0V/oXQ7hxp2sLnn4VSaASCib1LCxnoGZ/dSUVJytt9o5 Vkfjbg4afJZecnuRvXNHLrAENFiVjWTev/3kzrQelOhvgrDGwCNw2HAJC1b9zRle/cwe n3qlBLhxC7+fnYfMxxLfTHU7zCJWawlY94EowFOxmy5AM4ECqH4PK+nqUjkEV+JEBoeN XIJA== X-Gm-Message-State: AOUpUlFmgMWqQwLRUaOgPK05KQo/mmgPpDdCgsGH7eBe+ltqcsqnnONz eXF4IbSjP/3MJdIiPIzbeAHPTeyN72VolFHQmW7mLTdN1EgfeXk/3hvtbnRUjG53YRm4U1jjGr3 0TE8tVyIAv2IwesyTyZlk3BReiAatVzKlUpqS1CrG08atlCqHdOj01W2wXW03Ajj3X9QRnnhked hw2aQ2K5KCutoWpsf6a1olg33AZXgZKKXX9hZuz4141pN8/UP7d2wbqy5IJJpG10n/tPTdJkSCr uCQH5UzA5252UTQsnkWBpvpTayJf2QCmlY6CtcHMq9Hm7VBeuDZq1SEULlCo6t4ImtmtkpB8fsz nl7FS80OkmagsCWn0Ihs7IYq77YsIcAvHcCx9ss71QdSiDvb8KuTZHqNCQnoNe1TdzKYLynlIMq 7 X-Received: by 2002:adf:8796:: with SMTP id b22-v6mr10596268wrb.92.1533573666465; Mon, 06 Aug 2018 09:41:06 -0700 (PDT) X-Received: by 2002:adf:8796:: with SMTP id b22-v6mr10596235wrb.92.1533573665805; Mon, 06 Aug 2018 09:41:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573665; cv=none; d=google.com; s=arc-20160816; b=lXAi6yDyZSTqBH1dq+99N7LIToeA1ZRiwYldk7Fhl3CZLImwoUwvUDkvJXGkSu5VrY IJXoe2uK2q9v6En6pKh/GpF/NXl4lZ/uw5ffQv3c8KNZB+SlNiwq7oBwh68k2BNKFyd/ SU1tSmgWCnUEgF5nnyhyOGUbrN9p5OIftNyX59myGkg3X1FfylqwTFZcafJydO1bvL/y gFzmA+D9DbExZPQ0uAESXXKOMFkLqJ4pX1EJVqltYbSQUNr9bQh4MRR0p9anGGpje6mh daazidWFH80JAhM7asCIeedsn0Jo1QXF1f8u3X+XwylqgVbGlk4qeHFBu53ZHgjHVs9m v3rA== 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 :arc-authentication-results; bh=MRLVSCH0Nl1kzAwRQQajvguDlRs+/L7hQOGZ466Yf5o=; b=wai0VpmXTxv+VVeVZPz9rQsj1a3varj74DPyFBguLTc8jItaA6CV5Jf9Vdk74HwaNn eKWPVxYbaLhH4lw2+Js+YZB2nIlrhLt5OL2tGwHL18oVPIJhbX7U6I9nTYyvgG1yWK5K uYY9D46+X0UCnRWXqPSL84i/uCUNQmj+mOWa5WhVlE8BSu0TmwqhFiJvtrZNa0nCvQED cTcFzbpBESuxbz7lG9eYud9wM+tZwkUKxvuDBYpAFjG6urbOhCHDV18ysIdn25A4szXB RT/8RpVf2tw0XFBeNVNvP8Lv4pFgJLSalLFUF4E9k9zJp60QERmaVJCShh4T7ADSDH4g GTww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="imLs9/aO"; 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 125-v6sor1642202wmk.50.2018.08.06.09.41.05 for (Google Transport Security); Mon, 06 Aug 2018 09:41:05 -0700 (PDT) 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="imLs9/aO"; 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=MRLVSCH0Nl1kzAwRQQajvguDlRs+/L7hQOGZ466Yf5o=; b=imLs9/aOpxfxymi3Jm6LL6Cl+HPgYBfHrn/Rg9Cv1bIX3BAGWdVj4LT09FPkG31amJ 2CoFZRgddIiWLsCzIWVXY1G1pFFxYVV8Mfp0qYuiZKiuMWN8Z0EzTMIHLKSlNuRG8u8T xollaHvv6gm2kjD0sMtaDFY/wRtfr0zOBGh8hemHLeRmD0Zq4K/I636KJEl/+SUtHWlK uPEVc4iPimcP9RTeAqVnlD6hx+VF6k8mnbMDmCCsv5pwcAQHCBhjwC3K4bOq0jwDBs8d fWI2OUe+eqE4h6JB7APAHwjbDL+As93F2/61VDpaxx+VJF3TJmmPJ82EujRrL8QyfY81 0kXA== X-Google-Smtp-Source: AAOMgpdwhViAs+BEk/dzpjpUJqfDn+Z0f2edpJCMumu9mOlf7GNNn7B6rxYD936ltUhmZIL38rBNtg== X-Received: by 2002:a1c:b756:: with SMTP id h83-v6mr13169480wmf.8.1533573665078; Mon, 06 Aug 2018 09:41:05 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.41.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:41:04 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 08/10] usb, arm64: untag user addresses in devio Date: Mon, 6 Aug 2018 18:40:43 +0200 Message-Id: <39bbae2c9d880bd3c27ac3ee03d4be72e161491c.1533573460.git.andreyknvl@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 devio allows to mmap memory regions and keeps them in a list. It also accepts a user address through an ioctl call and searches the memory region list for the region that contains this address. Since the addresses provided to mmap must not be tagged, and the addresses provided to ioctl might be tagged, we might compare tagged and untagged addresses during the search. Untag the provided addresses before searching. Signed-off-by: Andrey Konovalov --- drivers/usb/core/devio.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 476dcc5f2da3..357c2e7b87b8 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -1404,7 +1404,7 @@ find_memory_area(struct usb_dev_state *ps, const struct usbdevfs_urb *uurb) { struct usb_memory *usbm = NULL, *iter; unsigned long flags; - unsigned long uurb_start = (unsigned long)uurb->buffer; + unsigned long uurb_start = (unsigned long)untagged_addr(uurb->buffer); spin_lock_irqsave(&ps->lock, flags); list_for_each_entry(iter, &ps->memory_list, memlist) { @@ -1633,7 +1633,8 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb } } else if (uurb->buffer_length > 0) { if (as->usbm) { - unsigned long uurb_start = (unsigned long)uurb->buffer; + unsigned long uurb_start = + (unsigned long)untagged_addr(uurb->buffer); as->urb->transfer_buffer = as->usbm->mem + (uurb_start - as->usbm->vm_start); @@ -1712,7 +1713,8 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb as->ps = ps; as->userurb = arg; if (as->usbm) { - unsigned long uurb_start = (unsigned long)uurb->buffer; + unsigned long uurb_start = + (unsigned long)untagged_addr(uurb->buffer); as->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; as->urb->transfer_dma = as->usbm->dma_handle + From patchwork Mon Aug 6 16:40:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557427 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 BD4E013B4 for ; Mon, 6 Aug 2018 16:41:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AE4D4298E0 for ; Mon, 6 Aug 2018 16:41:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A29332992E; Mon, 6 Aug 2018 16:41:23 +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 583B9298E5 for ; Mon, 6 Aug 2018 16:41:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C956E6B0272; Mon, 6 Aug 2018 12:41:08 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id BF7BB6B0276; Mon, 6 Aug 2018 12:41:08 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4ED16B0275; Mon, 6 Aug 2018 12:41:08 -0400 (EDT) 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 2E3CC6B0272 for ; Mon, 6 Aug 2018 12:41:08 -0400 (EDT) Received: by mail-wr1-f70.google.com with SMTP id e3-v6so11295441wrr.8 for ; Mon, 06 Aug 2018 09:41:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=qyIb1LedubX4Bm4tOfTQFFJt+XM5l2v/UMtetdGR0wA=; b=GHyO3828HLOmZ0arA2DsxWDqXsCcNK1SxQT+kAPghkha6w+6VAp2DarjWamfc1CbWj Slc2/R3GFStXf4AxFdsOFCUd+DEtDanzrzu3/ZoPLCMT7zUV60Ny6QaFR3z1s+QCgQ7Z iPG+5AGrXaFSnM+CmjgKxkXGsabwkIcZfpfQqa0ma7KQ9rc1sBsZ4qIVo2gxB8vlQAha t1x93tHbz8DxsDJnrH+JwUPM0EdK8TARjo4yA0krwxGSDFG9vRS3GPF5OlHj/9QY9avw 5BMqF9Lub/q8TnRhBWte68C+jcU7LldNnErDJy30InHEnUG8r/4X1klapBKD7w5PuYHm N3Qg== X-Gm-Message-State: AOUpUlEuRrBMPr6rKPZpHVhxfWO94voOMxoLwR+L5m1O3BMlEigV10Ju Qmww8sbEI+54UcjojAPlzcTTHAFLZCch51hXzd8LNy7v66PrRT/RCOkhT2w3BW85NuSL+wL8/hY s2YkUB9/ilRG1bJfCttD8j8s/a0g/pqCHkQ2JmoWb3rHH0xOhJFpAROo7sdO0TaLQziKD7TXz/Y eq/MEwwy9I6vrMoYbKWM6zK7G70tKcKVkitKMIDbzZOVe55bZrqOR8R4ChecpOf/WuFyUAwjYYB 3Xhaqh3paLsHQz/jBfsbMCxHW3bMsWQMzLDh6tVWem5NXQ0RP5IwGf46f+3KDqd/lUS9E4buPoZ +4PnEiikOvomUbpDDlTSlmM+FgBVPMu0S+EPsWeI544DZ7WR1OpeCv+WJ+GnFDW53R5gthXl5xL L X-Received: by 2002:a1c:5c93:: with SMTP id q141-v6mr12435275wmb.133.1533573667697; Mon, 06 Aug 2018 09:41:07 -0700 (PDT) X-Received: by 2002:a1c:5c93:: with SMTP id q141-v6mr12435252wmb.133.1533573667043; Mon, 06 Aug 2018 09:41:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573667; cv=none; d=google.com; s=arc-20160816; b=QFLSlaFH/WxirnNHbsqz/6fV0XKP3mQqkfh4xlUZ/xWI93HgzHFJGASvFjosN58Sw6 Rh4n/3ZyaLp1I2EEktPedWTvbcW2s9acFRl+af8147dcsPzHCj0GotElOtCVEDALGbg/ TQk/Dje6h5MkkMiF89ANDCMg3dWxVXMhfS3xwFPzfk34xxn9nNO1hpSl/eXljdCX1UCJ 1Sit4IPj0BAyWKytDgVYtW1Ye30vHw4exbTImwtd4nsWWvlgzGMjEf+2FanmxXybUwEV 3U3LwETwkZCFgBe29AvZPvyhBmFbF0WYWCCzi4oVf0TlKzV0uOFtYUZg4Ky++iyUOfpF frSQ== 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 :arc-authentication-results; bh=qyIb1LedubX4Bm4tOfTQFFJt+XM5l2v/UMtetdGR0wA=; b=Nd6+j2hmAOC438i+pFfO3ajD5dIxg7RZOpbCTeAr6p/dZZC/S5eO3pmCJYJIkbp4f0 We7EDdW8kGMVOfbPFat4MIQ6k9vkj2DoZ4LE5EnO1QowIws4+R4oLmjj4SoQbb6uOLMn smj4/2RCXG8uzZVTXO1DyOQPpbEGXrd2aZqa++QDvzqZ4DgdLR65B8hTqR9IZ4I99elT zDuWQqwEnToiTYiU8wlIw+YTv9leIO7Uw4DjIaNknmS9Bx/Ccf1ZTtu89kRrWQz6354t zKpoYYDkRCKLtiJC5zZNizxp8P9zUlsHVVni4slMUGLgRWVig9vb1S5FpF04MO28bs04 Xtlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=SJkaC5hI; 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 k15-v6sor4458971wrm.34.2018.08.06.09.41.06 for (Google Transport Security); Mon, 06 Aug 2018 09:41:07 -0700 (PDT) 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=SJkaC5hI; 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=qyIb1LedubX4Bm4tOfTQFFJt+XM5l2v/UMtetdGR0wA=; b=SJkaC5hITo4nP+vXjYHN2mVUXmdrwLIHbNc8CpZmyoVvw3V7GtCN1wz4N7Al1vQJcF hd2hQ2Dda2FOZFaB3fi4YONbr7FkxJE0+zV6mYo8QkXkiP+cwOm4HdDWfXUKGfXTgQlN Q8wwiuZ3k//FGLrWLP4x7doPn4M/2AOprO2n9lsdrV3GL2iuZY36GdqROtoI4m5Lg5QZ FAAmEmPnQxfd5XtkyfuMIGdZRRZ9O3+CyxV3b1xZlSjyfDnCfuNe+F9+7eELSrWmRhH9 ogwsvNzG8jsKFD9+W2+dNbTKYfDwtsP7DnjDyEzq/aPqETSO9v2jfp/3lWSRQXXa9tjz rjcw== X-Google-Smtp-Source: AAOMgpeO7k6j2TtDLWY/G7617DSwScmheLW9n+G6mjNCfjUdKJdVUj28MA6JiNxNbo41h0Nsk3UX4g== X-Received: by 2002:a5d:50cd:: with SMTP id f13-v6mr10733476wrt.73.1533573666455; Mon, 06 Aug 2018 09:41:06 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.41.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:41:05 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 09/10] arm64: update Documentation/arm64/tagged-pointers.txt Date: Mon, 6 Aug 2018 18:40:44 +0200 Message-Id: <5396af31a51aaafd5d65742d1cc48854513be778.1533573460.git.andreyknvl@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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 Add a note that work on passing tagged user pointers to the kernel via syscalls has started, but might not be complete yet. Signed-off-by: Andrey Konovalov --- Documentation/arm64/tagged-pointers.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt index a25a99e82bb1..361481283f00 100644 --- a/Documentation/arm64/tagged-pointers.txt +++ b/Documentation/arm64/tagged-pointers.txt @@ -35,8 +35,9 @@ 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 +Some initial work for supporting non-zero address tags passed to the +kernel via system calls has been done, but the kernel doesn't provide +any guarantees at this point. Using a non-zero address tag for sp is strongly discouraged. Programs maintaining a frame pointer and frame records that use non-zero From patchwork Mon Aug 6 16:40:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrey Konovalov X-Patchwork-Id: 10557429 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 97F8C13B4 for ; Mon, 6 Aug 2018 16:41:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 85311298C7 for ; Mon, 6 Aug 2018 16:41:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 790BE298CA; Mon, 6 Aug 2018 16:41:31 +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 A4A4029936 for ; Mon, 6 Aug 2018 16:41:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B5FB6B0275; Mon, 6 Aug 2018 12:41:10 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 89F4E6B0276; Mon, 6 Aug 2018 12:41:10 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67B7B6B0277; Mon, 6 Aug 2018 12:41:10 -0400 (EDT) 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 05BF16B0275 for ; Mon, 6 Aug 2018 12:41:10 -0400 (EDT) Received: by mail-wr1-f70.google.com with SMTP id 40-v6so11111425wrb.23 for ; Mon, 06 Aug 2018 09:41:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ZrhxEh1LXKnM2IrXVIXbI5DKlDD8oKDUSL0rMpxw/qU=; b=jH/m3ytpO1DVY8X8xwu/W66knGRFCWOM+REB6PdFMAd4PZTOS4Kyg/HpAe5lK3MTlT K2AvLZ3285zruprtgWHN45eT+uHar8hoDlPyiMGeuSdXWSOoole1yw4XvLpVSsxWhaBC 1HDH/imHDu95gveL2E830hh52mKs8X7RC3jfT7SxPcIQ49rCsriyx6ttnM0wdgrr129D q65JqzRrH3xpH2xjpZP3lijQ8TTl01+8CaCwBvXafRchaqA6chsvxIY2WHCgsbpdceaV I5La+9Pq+2zTKFK07nKjQ4kfncZcC7pmlV7WhgH1YWDQqSdr3yrf++rL633VF4THAAao gqNA== X-Gm-Message-State: AOUpUlF2mk8H3gjs/L4DhHn1nKp0KsmMJ7JX8tn4HVXyrBY3dFe8/P3x OZYFRQJOxIQhWZBDDzGxlXo7mLXjicewQjOp9IEuSuuHtInGvMO5JtpIvAqw07hS+zOeC4mkC42 67H54czL7hdvWczm87LDp+5Cw4sr84yTE/joniVabTFEdWXvV3gC3zSaDBEcJZQy50S6Z65L/hr RIu1/rghshFCRHOfxn0m+GItC/j2GeUbnOKwszhrFa7UXMivO7mhi+mV0FPpbU0V7hOoB/XgDrd 1JVzbR3ulql1SJlY8pSN3sJU1+rtk18Kx6SkhG51bjI9rvoajeGyjeO9rBA9hleZh88Ugh2FO9a JY/bloEOp49Z7iK0rLmX9WTqrxLMvwMIHyVxtxHgDF61NnLNeAuAu5y7DitzpOaqOZC/7q0hivd 6 X-Received: by 2002:a5d:5691:: with SMTP id f17-v6mr10327879wrv.58.1533573669542; Mon, 06 Aug 2018 09:41:09 -0700 (PDT) X-Received: by 2002:a5d:5691:: with SMTP id f17-v6mr10327843wrv.58.1533573668733; Mon, 06 Aug 2018 09:41:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533573668; cv=none; d=google.com; s=arc-20160816; b=iDEhpv87vLUtYkXi6FV9gXJIE2d5OabIDXSJ/e1yS/R/Jr6kZxhaB53HFVpYL8PN90 5vT6VqHDomu9Jw/1Hul5Cw/21x/+GbhjLHjun71U5wRTdsKSdcT62o+VOX95udaMUeHP 6aIX7AqijQ93kIrBK9QKIycg4rQUHJljAR3aK43o2eGz5gQoIhv9PRP0wKnfLpXuvwQL kqAGFvyqmKzzMZrs8zEABcE4sKnDWCDFRxrESBoGCWhHSA30Hk+NKuyd48Hlv5HwxjNf oYrEay8TQJk9YbtC5CD8EE14b7igiS13Qo0OWd6UTd6QEgCwmSq+IKblg32z7fE0Q+LN x5Og== 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 :arc-authentication-results; bh=ZrhxEh1LXKnM2IrXVIXbI5DKlDD8oKDUSL0rMpxw/qU=; b=HxSIFQD5+1IRsSHJkhLWT/HgJL27tcC575KTY26lf6n/fQ0KVbC84dORZoGA4RaWdh r0NLscYAAr5Chj1PpZuKfVUYp047ecN71WCU7fUBqj7NI63B80n8k2n4BsnhLp88Ffa9 R6e66oOAlwk3mHTfi9ICOs0kOm4fdwSVNj0uWUmR2Y83ARF6VvQWfWjrkLVikO0wEtd4 R6g91wrMkqc0jV5IfjBpgsqyKC01XQLEchP5mrlwM9ExYfFN2Mgml0BSPeJzAmV98/p+ 1sUc9hWW6TF3U4LGEIwowhxhIJWk66HFileBp7/9eCbS1lLhHQn089pVZ2vRPbueJHvF F+qQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Ro3MVatE; 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 z25-v6sor1685613wma.3.2018.08.06.09.41.08 for (Google Transport Security); Mon, 06 Aug 2018 09:41:08 -0700 (PDT) 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=Ro3MVatE; 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=ZrhxEh1LXKnM2IrXVIXbI5DKlDD8oKDUSL0rMpxw/qU=; b=Ro3MVatE7Wpum1+4Kk+2wXZyHXWGz5DhEhdhzVDpd6n/5zWbox/Ku85U5aRyxxnzQJ 1J/xWvRyFAc03TrVnYRNw8OmHId2EwNePrTxpSWu1Ofv1SyERhzredl8WNaZAOK9NUox kdSLR0PzMNwDcdf8IDNrR/K6Rn2/Oq2YV3/c4uct4BnX14eyZ8BAMtfJTUrExgVGB4/D CVBWJPc3EidgI39apO4xklbv+Fl96U1MRR2IF/FLrVGIUHoTHo8+XdeER10wgCNAs+pz Ume8Ot7SFSHyWHNqaSQSC14cH5byqzRoQ0+VYrRQwYDbd2MRQJguQiz5Xk4ALJ4R63mL Zn3w== X-Google-Smtp-Source: AAOMgpcDi4MsvNpmW3WExVMPVjcfyNYV436aYUrVpmhZEgiIKgBhHcCGOm+96ozBcTKn96ws7pU/kw== X-Received: by 2002:a1c:8010:: with SMTP id b16-v6mr12985397wmd.9.1533573668058; Mon, 06 Aug 2018 09:41:08 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id 66-v6sm16385790wmw.34.2018.08.06.09.41.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Aug 2018 09:41:07 -0700 (PDT) From: Andrey Konovalov To: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Al Viro , Andrey Konovalov , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , 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 Subject: [PATCH v5 10/10] selftests, arm64: add a selftest for passing tagged pointers to kernel Date: Mon, 6 Aug 2018 18:40:45 +0200 Message-Id: <44c929e1128adfa5e84ed7db832d2b34edc55f19.1533573460.git.andreyknvl@google.com> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-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; +}