From patchwork Tue Oct 2 13:12: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: 10623621 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 ED34214BD for ; Tue, 2 Oct 2018 13:12:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFF62288C9 for ; Tue, 2 Oct 2018 13:12:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DD91928919; Tue, 2 Oct 2018 13:12:53 +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 7C922288C9 for ; Tue, 2 Oct 2018 13:12:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F30C06B0005; Tue, 2 Oct 2018 09:12:49 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id F07C56B0008; Tue, 2 Oct 2018 09:12:49 -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 D82A56B000A; Tue, 2 Oct 2018 09:12:49 -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 647ED6B0005 for ; Tue, 2 Oct 2018 09:12:49 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id v33-v6so1631572wrc.13 for ; Tue, 02 Oct 2018 06:12:49 -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=hg72P0CosgRbWoaFLc14vzZ1X5hDU4dYtp5LLPrtPyY=; b=hXgD1qofJE1P3eZzYsM8fgSf50XFWtJO/Lyph2SNOIWzpSSQZ2rOV01Hm0EY9Vxo3S Zx2Bqu7E3vaaNXSItMTaSHNFi6OUF6TFqxswre6yRuAznjW/XEx3akL1EDqsoJ6mSuJZ Ifjs16GtoxwhH0jw5AwVGXxW/4EfF6hmg4Qnf/fKVdG0cSnz6uCfYVOPOxfuV8U0S4Cd 3BHndF/PwMbWtl48RF1m5wrQNCibRc11/v6e4Yas5KRGby+HE6VVENxlLRAckR5Jjnvc dKIjXblBhJlpUEy6/FGaLVS8Uo60RT5CLXN2nqib1nfM5GjDcTYizpSuehnV1XDeYi4c QrLg== X-Gm-Message-State: ABuFfogt8rBOmYY36R8Q0xvyXJp26OfplbHxjSh+I5jChZT9V1aKKFFt 8SfFjF7QBFrnZAnHnrdcmMT+ZcAwfvKHoYqvJ9Hpn+3C9vYt2tRQPJ5cCNbyLFzpyjTVu58I+iv H0HFu+K3RtaRFEpMhWMV5w22+DTHx08ptEW7d6+pI8wZt8hZ3PMc3vUyJuNC9LPzBupUBJvxl96 Q45uGu2wCtTCv3fv3cu/IY6VBQmAzzTwAJagYWdrLEwh9d3jTnq5PbK8TnfVtWCLgGMygMCJydM 7q15aKzX5xGoQeszQ1zG+6tlSwZ40OvDxOUfzSuApOf488Dr9RvcGkeTT/2L2DA491Lf8KP1Tul 5v7CSbShrkfOGDOlOuDc2sErgX4nE8v7de1kAEn7z6ZifSOtO27trHHmonh6oRk6HkFrmJfZ5gH 7 X-Received: by 2002:a1c:1314:: with SMTP id 20-v6mr1920671wmt.132.1538485968913; Tue, 02 Oct 2018 06:12:48 -0700 (PDT) X-Received: by 2002:a1c:1314:: with SMTP id 20-v6mr1920634wmt.132.1538485968087; Tue, 02 Oct 2018 06:12:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485968; cv=none; d=google.com; s=arc-20160816; b=KaTN7JK78Vctf9Alw5nQtGdOzFkYh5GZQz2cufHQSVStMO77g8S6Rg/MoUlAmKlZpt ZVyXR5as36vQsufKHPr6BLV5hF0g5Q6qrGXDyYSgd8WApfxhIP1nZc73EEAQxL77FvRO yvXi1XFaXed6Nyf2dmM63WwS3IUlL449mJnYSFy51ud/SDnIOkHnQpo25LvgnSgBQuDF gdDEJwDpBkIdh2f+RSu9N6gMxLp9AVhRJcMFQGgAvp/xmesgvyepgurryMceotMNn5J7 nvsQCyulCdmAUYZW9Cl3S2vU2ZJjkJnx/EcOwzDBvI89OTsZ++WZx8fpL74pynaeLcjI ABpQ== 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=hg72P0CosgRbWoaFLc14vzZ1X5hDU4dYtp5LLPrtPyY=; b=KjNl3HCs05t93NYlyj6M1lmEJlr96o9K1HaeQ6H12DPo97zHLGRdYmMgftOy7PpTXh O2Umw78LZX4tcC2PPsR616ZughzGdihZKB3SSA3Ql4Ki2XN5vRxYKbVr1ZpSPjTWoJD5 sBqejer1w8naKTbFOPYw1JDjBPtaOl/KEZZJxjlZXn0Nww+hKWvBEvZyD6zYqPeUEchH L+5/fZFpzBASziupzM/g8zFJz+l2wLE+24tF1RzANaT4LzkzMs0vFItWBTP5jPHYC9y0 8FkbT5oI+vQQXR53+bDEBvVxiUzNU4cR7ODDY7cD5Kfg3pOMvCdf9uzBk0syU+4QnA6F rHpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=YxOsXrwe; 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 n15-v6sor10924197wrm.3.2018.10.02.06.12.47 for (Google Transport Security); Tue, 02 Oct 2018 06:12:48 -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=YxOsXrwe; 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=hg72P0CosgRbWoaFLc14vzZ1X5hDU4dYtp5LLPrtPyY=; b=YxOsXrwelAI/lXWqUvyP80W002B/7n6YQbPrxkL3Y/miO7blJJ1EdFiyRBNCCwuumv LVsj+hqhdHZjOY9W8MhdK1bk6eCDfyjz930bJmURnf6BgQMurMXp2LPNMmBOo23+fUZK bFq3knuWoaKlq+KJWir7KTX3naHfXXzSSp8PMJ+wrZA711u4/zKWOTjkyH6Zcnf7lM3X HVyooy564WzO4uvgji0Lb8fngQnuYXBqiLiC2s/b/R+py7YRH8VN5vGKUMcUa2NFUR9x 4we1MwOXrkCACvUvM7bAXHfluyXrVN2H6IKjodbIdeAACkgmslAF0UFZ8S67M8zgYfu6 VjGQ== X-Google-Smtp-Source: ACcGV63EvbNvms24ttmp368a2zKSU61XpI0aSwgZcGP8ZkkbdUH3S7LIgrnqug9JC04dDVPW2NeEoQ== X-Received: by 2002:adf:9792:: with SMTP id s18-v6mr11252530wrb.283.1538485967668; Tue, 02 Oct 2018 06:12:47 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:47 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 1/8] arm64: add type casts to untagged_addr macro Date: Tue, 2 Oct 2018 15:12:36 +0200 Message-Id: <6a951a9d1cd38eac1e49591f70e3cb9410349823.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 Tue Oct 2 13:12: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: 10623623 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 CBCE913BB for ; Tue, 2 Oct 2018 13:12:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BEF4A288FC for ; Tue, 2 Oct 2018 13:12:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BB7F928991; Tue, 2 Oct 2018 13:12: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 4DC812897A for ; Tue, 2 Oct 2018 13:12:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 412A06B0008; Tue, 2 Oct 2018 09:12:51 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 39A356B000A; Tue, 2 Oct 2018 09:12:51 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1EBDF6B000C; Tue, 2 Oct 2018 09:12:51 -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 AE1566B0008 for ; Tue, 2 Oct 2018 09:12:50 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id l15-v6so1602548wrp.8 for ; Tue, 02 Oct 2018 06:12:50 -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=Cq3vN6aPcQwtnG7Yk3tP2XwC690M9TeiFA6EGKo+spg=; b=noMTOxCjKWslVhUvHk3xSniO6/r6c3H9psdl3++D4D+dWncD+pDOyLNnuxV72HTq6A glWfPuaaTnp4joznjZGb0Egkc3AhfOsBzA7/td3/loiIZTl+04fFDf2Q4RDviOwVek50 cDVyXu8Pb7FFwc7UQbNhOcEEqrGYTn+Rx0ASRTp50hZatk//mSpy5OnTHNYOrfzoCUIl i/PPo7rdN+/1zNDhCgRKoK9Jz396pW1ET6UKTC97RCZxa7SLPtEWkTC14x7wnmgdSGbH cKlRESI2FSYQwjE4r61NDjd2BQnTfTk1LtnYIZWLm8Jl7Y3NaxWo8WO89gqdUxLNfYWl frhw== X-Gm-Message-State: ABuFfoj5QLYdyv6WBNo15SETYoZXjiTimxxRnUEPgo1xYTFFqFcdbZas mHsWQarT19OvqpQ++RJShP04SvrQU1q1f7TR6QuZnhVB15HDxvk+PzCOarHlEfigJZOBxpJCSa/ WnQxYgvKx0FLVWiCbUVlcOB+xpWv+wJaakcgc55vvUGbo4BfEYl0IsrULROACqjplT3FYTuoomv CObtvUZy4+XwwwLhEMDurSrDSUFTNdAdoFACC22Oe2Cld1Ye6g4UUi8SuOmXvi8CEmuRj1xNZ/+ 8DT22qC095JRaJ/09tPvVIIeoS7xn6jSPUNqUNPYttyBB9aznfU75xiBasWNsB9SWfDxR7xpfOS XrJAA39D8TPYkB52FP3a35GMdTt4YOvqAldb564CfPmBQNLBe0YIUuxeBHPDGfOKLj2GZNrZBhI e X-Received: by 2002:a5d:4e0a:: with SMTP id p10-v6mr11009953wrt.320.1538485970238; Tue, 02 Oct 2018 06:12:50 -0700 (PDT) X-Received: by 2002:a5d:4e0a:: with SMTP id p10-v6mr11009911wrt.320.1538485969509; Tue, 02 Oct 2018 06:12:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485969; cv=none; d=google.com; s=arc-20160816; b=hig9ADjEI+LF5LtP8fF4UluKnoP/N/dcP0PMDX9Gokn+0vEq1qH3nnkB8k2dRq3Nwg n2A+YiitukcCBpSmd2RT+SKEyuXtoWLyS869Gjy/y1HzyG4I0T1RNPQ6jLJBwox3qwXa oxaxPAPFHkpp5AX/v3E9ZoWNEa5xIvU7AB9G1mQsuJB3x90y/tYQHjNNqc+YAbREqiuT YIsX9f/GjFgi9zv9nKeQWILLJcIQavAlLvhLi1SsK+XxmUb92OQl7/cT4gEETwhCQznu xBJpA8GsJJ4MUYAUQAHmVbJ8O23VPRH/ILS4BAk5bDNlCRWaHF+Vb37XZxRWM1HEjrGx qS7g== 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=Cq3vN6aPcQwtnG7Yk3tP2XwC690M9TeiFA6EGKo+spg=; b=ifRdkIj3dnp/uufM+7uSnZbdK+cLpTz2HSCwlkHlamWE8+0vW1LMcqzW4lIvahbWlB Y1+R2iEMLLHSiOsacHXiqhnQvS6CAqM2uVqiJwq7t/s9WmBShwGJ5XeCdrGOT+IURqhh ZRfdl+rNmfljcOfc+XJj2vpJ1TjTQlDa36krbgw++ljrgvhjU6ZzXOjie4clKMHS5Zjn /x0zE19MZKTMMnXK79s+bNJrKn5epKhEinYNWJqv+Pf4IrjZWVoUmzWxtqLUikticGqB gHTBrQqZY3RhGXlGzXnQbLMLQNEN01WG8Npum1Yy1+lGbcdafk/uhfZ4QMlgVAuAC9yB StIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=wVK2wJsB; 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 63-v6sor4235227wrs.20.2018.10.02.06.12.49 for (Google Transport Security); Tue, 02 Oct 2018 06:12:49 -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=wVK2wJsB; 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=Cq3vN6aPcQwtnG7Yk3tP2XwC690M9TeiFA6EGKo+spg=; b=wVK2wJsBGU5FIzxsuMJcgTdTL10q6LtoeL+UENspJKFgA0RDNTzi9Wn5gAyDr+6Szv RncY5kWukrU8NwSkp4uPffTL6eb+JtiBGH/Jp80QDfaMmzXGUpB7izMO5ZlGKrJ/c+NM S3mjkFvCJ3ABkch+sQLZcNPA/SdENdR9ieF/M8THE6aUPYbQYb7DD3n9cIvpFuI7qLT3 +ZUu1kES5j/a2JYULJs6Ry0XZ+RqRXQI2jOIg5lPqOT26QlkW3W+kKGlm1f1B+9coovo V0zbhgSer4xnymtNsXnnPFCfur591TOZxRATREyyigBwTz3+tXsZi3uIwP51Q2Zc36uq h/rQ== X-Google-Smtp-Source: ACcGV62AocYuBthFf3RuZ7M7TITSn4vXXnPKZ8bb2eLezWn89dGEtVrCS/4KW1hgHo/fTVInkvsQ6Q== X-Received: by 2002:adf:db8e:: with SMTP id u14-v6mr10999323wri.217.1538485969081; Tue, 02 Oct 2018 06:12:49 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:48 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 2/8] uaccess: add untagged_addr definition for other arches Date: Tue, 2 Oct 2018 15:12:37 +0200 Message-Id: <1ff6af9a9ab1f716d0ecbfcfe6788a02e21b7480.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 Tue Oct 2 13:12: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: 10623629 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 051EC14BD for ; Tue, 2 Oct 2018 13:13:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC89D288FC for ; Tue, 2 Oct 2018 13:12:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EA077288DD; Tue, 2 Oct 2018 13:12: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=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 78A92288DD for ; Tue, 2 Oct 2018 13:12:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C29D46B000C; Tue, 2 Oct 2018 09:12:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B1AED6B000E; Tue, 2 Oct 2018 09:12:52 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 93D6F6B0010; Tue, 2 Oct 2018 09:12:52 -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 3281C6B000C for ; Tue, 2 Oct 2018 09:12:52 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id p12-v6so1622532wrt.19 for ; Tue, 02 Oct 2018 06:12:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=UwxTkI+pYsHu40iHWOY4wB/R27fPZGDmoFBeZbslwgQ=; b=Eu3Aw+in9gP64O/ml+4RIzAOeOxtMUQuMwqZ9QktwKGfTBDLdoDzm5QJdOf2IYho07 TWrvCrFMlaBIF2X+zxY1ojm8o35NUBkFZL7+m0iBoSs7K9U7GyTYpQ6h9TByF6sD6AbA wSehwmTqu96lQbspIPD1BCe7ZVB8Vx/GAA5nmnvOXW14SNKLoMXIuHhdRg+q67DeRrVS IIlhe57JnbkGTYDYckzLkuL8qa6zZXHwo13G+duEWxoBXNWYjqCMZ/ii2WQUd41QeDoJ J/4ray5beLZrnY/ZBHRSwzTpjysLAAzCeePrAj5jS2LMQrENx1KIWZ87n/v+ybZN393R +OSA== X-Gm-Message-State: ABuFfohE7+g+MpanYsYU/+GDoH7KmlmXQBHLmo9NNeoOq9pSAPjy9bbC 2v4rxflnKR9farCNRoeGKjQXchN6BbSMFqq+opfQHotdrvahVzfOFuaiCGQ8vawM12QDhWGUH4S LpG+jnYlMGE0WW+YichFBBuZS+h0l4niw+jDSSP8EI2lX6TVBtTgw1X96hly1CLt9CGmLIQQY6Q TD7wUi+JZ3V3UY85wskt5dcSynsHZ7O7kIk7HIpYzw+h6MYTaPngYeMvJVGHoCH0KyLFf2N2q3q n4Sms9PFpuHn//gV23l2rV2r9uPqUmgZALDE+Dm4/zzdrkbSQ3YHM7L7oVDR6mg5i8w4bIqTqu0 KbzPi1fypAQW/R8ScJRheaM/MGYrIQmgerKIywKRUf0qgHQb4NNK5DFG+8lX89KnID66YZv/2GV 4 X-Received: by 2002:a5d:6551:: with SMTP id z17-v6mr10137596wrv.194.1538485971734; Tue, 02 Oct 2018 06:12:51 -0700 (PDT) X-Received: by 2002:a5d:6551:: with SMTP id z17-v6mr10137549wrv.194.1538485970813; Tue, 02 Oct 2018 06:12:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485970; cv=none; d=google.com; s=arc-20160816; b=gBBBjIsJbKABNDYVJEMDgg8qRDXgg7HhAoBe54eozDTxnaNBXe8ydCbikua2ex20Sb J+uMP/EbUZpjHKIHcK3Xwu9GRowOBPTTS2wReJy+RI3i9zDuD5WELU/69EJD09Wk8Mty aetXIvLl4o9dl7VK3+hhjElUCJzIHxLfh6D62PMYhL/y0Q0A+jn2Qe/vQS2f7Jnnhyjl 8AXp/EtloUmLzSa1TPOjNI83KHKs80w/+LxPA+2qi0VR/3qaaCet58Un+MCExkENKHf4 3GdAI/V6ygpmEjLWIKMoWP4HZYphIw5VDgODY94hH83Id6HNIZP2AN5TH7Y1TpuuLdXJ FuEQ== 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=UwxTkI+pYsHu40iHWOY4wB/R27fPZGDmoFBeZbslwgQ=; b=B6tJVHAfoQo44VeFXHToK5ZS8SWwonlICANB82ZKnmzwbc5Tr942VcSQOWGweBkdWC eioz62Iyzev71AVKfqMycYPzYHPYgPCodzs9dj68KZQXHkwVT2/7n0IFWgtJ89h4sK0o kOTUaMKTMo7lfReJtmo9iiQO9C/ba0ol+ji9uzIMfKMoCbyqjiwdWt6zB52KcaeFgYSw g0wxFDGsD6/Ku1VgwAXwEnvBCU9bOOEzab6uE9a0ukdvVz/9YcXJVgehk5zw7Wxho2w7 XyY2QtgM/ASDLnlf3P8dLqQBOP9O/dNc9WD2wfOtBnS8LUK2QmI1xNx7+4049tfGOr65 NoWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=uOQ+FfmU; 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 79-v6sor8123862wmf.13.2018.10.02.06.12.50 for (Google Transport Security); Tue, 02 Oct 2018 06:12:50 -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=uOQ+FfmU; 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=UwxTkI+pYsHu40iHWOY4wB/R27fPZGDmoFBeZbslwgQ=; b=uOQ+FfmUC+RaS3QyuW/9cJe9RH7pk1ltGJ/08pMGtCZU0scrsbZfvGCfzNFlnYWeR5 g4Vr9xESUkQ3uzvvWZq0xdqiM4GWXtOzvpTeiJAGBAFrgtHYW5APJNvA76dSQYg6AQ6U +HnGxnOWKMtPLutPQOCuJNs520+lOBa8RK6H5554UVrF0vYcw9e7fDpm51uyEaclf9he mlrY9jl92q9OeuR3mYmCoOs+LQInROEeHRG03TikcJ97tIw0t2mAJ68JeLA3lwRgRJ8x Pq5kHnJz2EmX3aXhV7wv8Shr2/YuRwwklttZlbsqxMfB4W5wvp501g+TByqSV28przNS TNVw== X-Google-Smtp-Source: ACcGV622sDyFt3S8csEmXThpDBNFNMvaRauKoxqXv/A4k50G/uwAP10xj9S7JvVx/Gl6W/hzjmgNeA== X-Received: by 2002:a1c:d4b:: with SMTP id 72-v6mr1969892wmn.102.1538485970324; Tue, 02 Oct 2018 06:12:50 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:49 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 3/8] arm64: untag user addresses in access_ok and __uaccess_mask_ptr Date: Tue, 2 Oct 2018 15:12:38 +0200 Message-Id: <2b957e4f0a3133480dda9d9c8aeceb9b9d9378eb.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 Tue Oct 2 13:12: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: 10623633 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 F3FEC13BB for ; Tue, 2 Oct 2018 13:13:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E603E285A9 for ; Tue, 2 Oct 2018 13:13:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D9516288C4; Tue, 2 Oct 2018 13:13: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=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 8281E285A9 for ; Tue, 2 Oct 2018 13:13:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4AA746B000E; Tue, 2 Oct 2018 09:12:54 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 45D816B0010; Tue, 2 Oct 2018 09:12:54 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2AFEC6B0266; Tue, 2 Oct 2018 09:12:54 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by kanga.kvack.org (Postfix) with ESMTP id BE72C6B000E for ; Tue, 2 Oct 2018 09:12:53 -0400 (EDT) Received: by mail-wm1-f71.google.com with SMTP id z11-v6so1764149wma.4 for ; Tue, 02 Oct 2018 06:12:53 -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=M+fzLalqRaXGFiw1By6nH8QQrYEhVoORFRhjy/6ZtCk=; b=INTjtW+Nqyq8MtodpB7/Hejg3uYfV8h6PVq7WWLYPEhN518EYm2mmpniDY+m2SKxKf KB0nGcPGTnwvZ6md2t9r27vvtexUvyUS32arnE+qS3SlHsi2MYsZbxJmXBdxd3r6aoIx 8kVWsEWWTWzASLKqrqm2OTXTUNVqgqar7MMBPZDfMVYQRNB2ZQO+hbk60SdREBCyj16Z 7xpyxr/7vaB8imRnZ0YqhLyid2JPt8uoPqblbIyZusFXSptV8yf2krYKPv5as30NlNH7 XphVvWN4pDjzaOZXKu+Rd0h93vYxkfNxoKZ26xZInmDWbXpe5k8Owvu+KdGV8fWHylO+ gBfg== X-Gm-Message-State: ABuFfoiyKVxCk5NYd8RyA0dGh4fu6VKs2fEfUU4q6vdMUCNoV9B9/3i0 yyh1EEMnO67cPMsbz1g/bFztYmu+vAWYjdR1w4C8hjWS+fYogVoJLxi/FDO+S74VXDSCWQWdhbQ Gt27O+/IGr50ZYwtZJNMGudEWctpCpaCcVLpdIm4MNyT4+Qz924r7+G4FJg/gDmmTwxSNU6HJT0 pKyyv2W5TV1/yUlTA0CI5q0trk9HnUUW6QTA/BNy1LQAV1BPSg8A+XqidLI7oKKenPaPD67/9R5 9b9/lT/FBM28sWDGfPvK00PkcGKp9OZ/PNH3CrnlrhLsSbALcvreP5vCQUDWdkYQ8OQfTce0Wfe A4alnDR+W0SZlIuOdL2c9dvdF/zo+DM43Rk8dfelh6OR+OtW0OPs/J2OsHMY21QM2peQQHtav6y 9 X-Received: by 2002:a1c:a9d4:: with SMTP id s203-v6mr1785723wme.58.1538485973128; Tue, 02 Oct 2018 06:12:53 -0700 (PDT) X-Received: by 2002:a1c:a9d4:: with SMTP id s203-v6mr1785673wme.58.1538485972302; Tue, 02 Oct 2018 06:12:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485972; cv=none; d=google.com; s=arc-20160816; b=R/U3VEdxKLJZTeQWMuKLNfUtuWFe+rQs7+yFb6ivXePgd9HcGoutFd40bTnktB1iu8 riRQmyN81In4cQcT4m02Kv1z+3aint5iGa3g+UchtcCpR3KxjVTOAMlJyEyyl5B+Bgat ftS0lIisBuRtTbMMg/KSrpG8s4y/KVkCZiUMxmnKNx7mpmyKDdzFw1mGpzZM4WnDIUA2 AwMgjrMiW4FEE+JIaBhFXl1lFK86BDLJsE8amvHG65sRPFDKbQHFP4R6oMlEGC5YLEYR hyTjVlR9xWkE4r6RkGnynZnwWkzFHz2ZvYxo2+JFKe8GaGucN1GnysAX7COU5wkwnRud H0mg== 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=M+fzLalqRaXGFiw1By6nH8QQrYEhVoORFRhjy/6ZtCk=; b=vOJU8ox/6I1qIeuZciWBndu0PoDL72eYqZ/CFCWsiLdaJ3Il9qDb+6YaxV04/2TNZU u3QagWb3OH15qImI8rEWzDv9WFPvuF4eCPkegufjND7ctCZXHr1WjuX3wwRUwkaZMiXg fGyJwm91ULb/eT2YL+883QF0CSb5EYB87cNEjZTZxvakPe1i2hf9DgJaDTuv6yDSNJi5 kWZmCnqL8GJ71fCXYI2MFSjJJjOGxh3I3To3ugzjUC9htoQwLIlf8IrAcKF64XWCCiI0 vsMSMyx9M1cNYxheCE8f/4J5BV9g5naVBgPBKJELq87L2PhztUoFUmmuuYCXfhpsiVlx 54nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="g/5+TE8q"; 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 j17-v6sor4831462wrn.8.2018.10.02.06.12.52 for (Google Transport Security); Tue, 02 Oct 2018 06:12:52 -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="g/5+TE8q"; 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=M+fzLalqRaXGFiw1By6nH8QQrYEhVoORFRhjy/6ZtCk=; b=g/5+TE8qrM0S966GF0ehpYeatmN6rBIDeIbCUA440M2nraTgJHSOOqRefWma3H2QFk db/TLUMgW+3DdtgV6yDyHfsewvdoZ7XQ0S1jqS57d41YAflXkP1pp9HlkbzYwNkS0JIY pRVdhsSySSV0TihlxSpRvVQSVaJywiekWjskRHndBNzF7BevnT1qmGTO4DaIhzYUXxry LRsUaYPgQ3TIeOamcd3WNyixCIR5UKwYktsOiGG1HrBcYgd/3s9nCOH/IZLWx8A6pH7v c1a8+L2HtBSCHGIVd4jnex5QRuAgpohMaN8a5DeTpNqK4l46AuDUGWCyxe5giES9UqQY RTdg== X-Google-Smtp-Source: ACcGV634rYLGlFVKrv5iDfl8Icy0xrHVGOhV9Puza2K4wNp0CAyWdiFG3gBDc0/36ZWC9rHQ4ru4hQ== X-Received: by 2002:adf:8022:: with SMTP id 31-v6mr8356555wrk.16.1538485971887; Tue, 02 Oct 2018 06:12:51 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:50 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 4/8] mm, arm64: untag user addresses in mm/gup.c Date: Tue, 2 Oct 2018 15:12:39 +0200 Message-Id: <405ee9e84a83178e762d8bac97dd1b36ea09074e.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 1abc8b4afff6..6f09132c654e 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; vm_fault_t ret, major = 0; + address = untagged_addr(address); + if (unlocked) fault_flags |= FAULT_FLAG_ALLOW_RETRY; From patchwork Tue Oct 2 13:12: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: 10623635 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 4107113BB for ; Tue, 2 Oct 2018 13:13:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 340D0288C9 for ; Tue, 2 Oct 2018 13:13:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 31DF5288F6; Tue, 2 Oct 2018 13:13: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 C550D288C9 for ; Tue, 2 Oct 2018 13:13:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AED246B0266; Tue, 2 Oct 2018 09:12:55 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A77F16B026A; Tue, 2 Oct 2018 09:12:55 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 833E26B0269; Tue, 2 Oct 2018 09:12:55 -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 1BE376B0010 for ; Tue, 2 Oct 2018 09:12:55 -0400 (EDT) Received: by mail-wr1-f69.google.com with SMTP id d16-v6so1543127wrr.17 for ; Tue, 02 Oct 2018 06:12:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NvErLiPb7Dhi68E8otsA18THd2lbB+9b3/NhcG854Xk=; b=l8xHP+xnvyq8P59dX8YUHLdg3P+B/HDjPYSuucq06lwB3LyDx3boXUyTwQtEncO3Cr l/06fa9u/8UVuW1TlzF5OWSZkKF64P5U7V03CZhBvPo+83f/WbZGO8mpG+p7rBBmgz+4 uO3sjB8KiUF9ml74vx6WH5/x7M+je4yN80urtWWRwCQpXj9+kYARNv+tp8diMRThK5/0 DHllLXuOtlCGGtaYNZ9GcTZJ0FJ1T2sRJ3GZ6q1sOL1i68N9zkKW7bdBz+Csq/IpXjui O1hJm3tCFQKatxZnzexEiagavSKtA0K1JEdw93du+ksJlVtVq6FDzaDtxIv6AXzQso+m MCaQ== X-Gm-Message-State: ABuFfogYVR0qF/TbLFzfE/wu9izOjCFf4hLaLKtgMBQdQbPWjH8a22SU 7j4TPCCQ3dIN0F7LxgzB3UyuXmtL0wcAdqY97YyIVUTrusWwwE5ZzZn2muigcr3HxWAb8ZS6AsZ 2Y2oFI0eE/iN5lnR/aLY1iAP7l2A5kKs10YLXm+UptMN4JAoES7u2Wk4m76FO6qVxAfeYveo25L eaOGGnGD3tIoi64bn8C3cdDldTZcP+ggnmNplzCn2kCxHDs3v28l9gZ8A5tCqsz3qmUlUR13iY+ 3r0vCtwSFevSsjjTvfMYu6jGgyX2+KXgZXjJoft1T0HywF3goLVwS8cT1n+v6xJMclCGDgGmkIf ecm+spNGSH4GArLBBmR3CSstS5dSRudvL3wTVsvhTfvrDiPCIDU91H0pP9Bsh2Wkwmav+frpJe4 Z X-Received: by 2002:a1c:7c16:: with SMTP id x22-v6mr1763165wmc.16.1538485974637; Tue, 02 Oct 2018 06:12:54 -0700 (PDT) X-Received: by 2002:a1c:7c16:: with SMTP id x22-v6mr1763127wmc.16.1538485973769; Tue, 02 Oct 2018 06:12:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485973; cv=none; d=google.com; s=arc-20160816; b=u+GzLabQBbD6+VIDQb831Oz7hhIfxHgcBj5MtYQdpPQGR3dWOh7Yz450/TIk70Hy2I 0SwDPvCDPp8RPmHzQaIPgbM/yJKM1CZQ7UUTQzgfmX80WuCTJfOFDdXXYmvBhEaU8vtj KuZxeusUfcgllEiWrgkfX0Q4t0YxGjou1CPvuyf0FpJrILVxZnSRsOLm+uoplAFvC89S N+CKx87UBT1YFFBem4lSZAn4oPW5rqhO06IGI6YruiVjs3+SwygyQwDtkWqpwYOPRKkf b9JnlYwmtoJlaS6GhGZe7ngH9QnjejiMuanziF8UL2io7EkN1gW/lGp5G2qgGdewiAh2 a6oQ== 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=NvErLiPb7Dhi68E8otsA18THd2lbB+9b3/NhcG854Xk=; b=c++1Uj9/wzti7urxEtDCqFNmT6S5521VCmCFyKfWtH/f3uljmGftlgU4Po5a+6JcfX 7L/IyrvffAaN5XXFSUW/yDvr0qJUzR5Gpt5fPoiVz5pma5u7atCYEK4a+URKchMf0fz7 e558gGV5McZYVMF1TuCxdxrXaPQjy6gvzCWE30vRQk1L76quhMxV12W0dZJBm6sHnyCb CV7PU8oR/1mPTb4N+pO554EwrmUc/AX/plG7bL17gx+X8TuH+jk9aAxGAenL7dugLv56 A4z4BJJTI/DHgeEs/o0WZNIioXqUNQ3Hgi9CvBnBZmYiBlHisxXCOLpCyONTj55LFpIH S4+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=J3rqMQ+O; 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 y13-v6sor4654630wrr.23.2018.10.02.06.12.53 for (Google Transport Security); Tue, 02 Oct 2018 06:12:53 -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=J3rqMQ+O; 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=NvErLiPb7Dhi68E8otsA18THd2lbB+9b3/NhcG854Xk=; b=J3rqMQ+OwoWESxRlNUNZvjq3C/i5394uPASFBYI9muB/L1ZiyOZBCro1+FKtx6blgw Zf3QR0zbR9aBLw8k94HJn2BihJomkAwGXZ6D3IccQan79jH4+JXMjrtrO30iOwbiwlL7 ZXwh97DJrxJryJEPEhuLlgAGLLAKtiHeczVtcczOfqs5HYQ7W2vG5CxdrOSeUx2uSvN5 GAAUamfcPXwAaP0TYFJuhfKsE1NhlhzkhRgg8V0uSoEfQtqHCiPnIouALNbppfaPkHjL VYO3WaSNSHcsFRl7xSVGvwVKBnyNE6GtDLcbcOxwj/EAXF0Z2usZxGp1Hq2AoDKtY0gx DxAA== X-Google-Smtp-Source: ACcGV63nabJtbVmhZN2ucFxis2mJLsrnliWxzagWfRZDa1M/aDSkXCme9Zu5EuIB9WfhAKLrjz02yA== X-Received: by 2002:a5d:4101:: with SMTP id l1-v6mr6433311wrp.45.1538485973338; Tue, 02 Oct 2018 06:12:53 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:52 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 5/8] lib, arm64: untag addrs passed to strncpy_from_user and strnlen_user Date: Tue, 2 Oct 2018 15:12:40 +0200 Message-Id: <978d6bcda7f6cc9420d77b1155d54300e73a634d.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 Tue Oct 2 13:12: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: 10623639 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 B493A13BB for ; Tue, 2 Oct 2018 13:13:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A937D283FE for ; Tue, 2 Oct 2018 13:13:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A663028900; Tue, 2 Oct 2018 13:13:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, USER_IN_DEF_DKIM_WL autolearn=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 3387C283FE for ; Tue, 2 Oct 2018 13:13:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E6E586B0269; Tue, 2 Oct 2018 09:12:56 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id DFAF96B026B; Tue, 2 Oct 2018 09:12:56 -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 CC1FA6B026A; Tue, 2 Oct 2018 09:12:56 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by kanga.kvack.org (Postfix) with ESMTP id 62EB86B0269 for ; Tue, 2 Oct 2018 09:12:56 -0400 (EDT) Received: by mail-wm1-f71.google.com with SMTP id f124-v6so1746374wme.5 for ; Tue, 02 Oct 2018 06:12: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=xOEYtA/I6Fm+wYElUl5x45bwyq3Cixn9jAS0SVOnGHY=; b=cG/U3KD7+jv13rOv9pXHAskg1nVJB8XdGC6quhODEHyjrDd0SK96q6HSwReOkKriQi k8EuIwbot5P/nBr39FfFkvopZNXIqOZ3mftKwIzN36C0WhExxx09M8xPZP+J5O9a7QSu aD/HBjKW6p8N4PtEvnN0L0be0wj5VeWCLkRS7V+RWkY8vr/asN4L4JcYTbgQ9QheEv1a 5MGbUW6uf2qq9pbdE66PLCKYWI5k4Q6PYYcLGguQ18Q7wFJJ/joUuuLXEpigrUdQNrmy MbiNjo8Q5sQKUOC8QSF/Z4Qua22akouUqOpGREMErWjy7RX14WKppyjw3rWS5kSg58kd 25nw== X-Gm-Message-State: ABuFfohzEP+qgNHNA+LVE4Gpo9TBgvmDRB3sRPKTId+QBqEPnAV/ZWqA B566Gi/j0SgZAsmtaqNMK7WrSPapxzKbd1Wxp4qynE5cYr3462qbUSa2Ver8B5AY3d7A0GpBKm2 DR4iiOwgK9FRSHfHtv/e7V53fhqumlK+ZC2QaAVgaCvDfEVZvEaoDCsCTbV/T/N60HGKleJInWv QXwv8R6j7GeaKKkGNad6TUU1tpVMqADJ6NOWxiqTr4M5jEKzbmnCLQUXmDa7HQIugMn+v8NNM5n pF2GVI4SuOePm9E6n3B3NjdJI2aJcT8oHLdlm2E33YUAqQvpx2sCR/7GWejWydRSwW5xMPt1tB3 FtUp3+DtsDuuSN/DRKgcDxQtBu4lb7RxqDr7zQZAthf0YYbxtCYAy9rZErfQT7JIg52JG+RXHi/ 1 X-Received: by 2002:a1c:8b94:: with SMTP id n142-v6mr1910759wmd.38.1538485975870; Tue, 02 Oct 2018 06:12:55 -0700 (PDT) X-Received: by 2002:a1c:8b94:: with SMTP id n142-v6mr1910728wmd.38.1538485975120; Tue, 02 Oct 2018 06:12:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485975; cv=none; d=google.com; s=arc-20160816; b=lHWxvwm1K01SC01yBuXtfIYSE4p16u4pGdHpfo5dDj334iANVO8OdrAJHPbrw7uPpC 58nhRHIYeEbrrAsGuMqGCtsJ3hhbpyPT75OkNTiimaAaw6CGafT+4HPM26Lw9jlBLr2p Kj9H/heHsoKKguKodfWLPgMTgxLVuCIm6QXeHechxmzYIyg6R2Gd5/H8FatW2xk9XJwh HexhrJ0iXIDUu5e8IckBb8sPNFiY4QknG0Vjwzws2Hcj0jZaVaJ74snmPIiYwqhT99J1 gzjdAHlTtuIApVaSgDBO4hog0ojl9Naw2kBn14thsyjy5vLh42qB7wHj6utmvKkPInWV kZdw== 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=xOEYtA/I6Fm+wYElUl5x45bwyq3Cixn9jAS0SVOnGHY=; b=nwfB2ycNYKRv1Gz3iFfO0P/EA4cZXrVJK/5ylIoYkGxFAewaOj7s9y7IESPn69DMWB Bbb6uysvflrIP+FouyujYFAwjWTyvkHx51iH1ctrQO98ZvINkOCBGPVPw4H9h4DibEKm wz0edAVQDRicAaVJm2lBwB+sqdzl8r6OQDPllzSwRY0UTgizX4FDgWfUNc9HQhqhmngQ 6p9Pa9ie3eDY33nhGH2J7vomHbkIOqCazkUhKVI+rCz81fnOsPUIvVNyVczH2ZVyYKyo rETpM1SRwsXQ7FhSTe9ewykzq0afbaUYKaEJUvJcW16CNZaiwU6ep33LKiM15VTESV89 iZ6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=hapSsxwd; 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 w111-v6sor11155247wrc.22.2018.10.02.06.12.54 for (Google Transport Security); Tue, 02 Oct 2018 06:12: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=hapSsxwd; 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=xOEYtA/I6Fm+wYElUl5x45bwyq3Cixn9jAS0SVOnGHY=; b=hapSsxwdWXwCXhX3cx/PcxUUNiBlkLbDk5Ol0GIiM68H9rsaDKFOhEppykmnJbSMIG hP4HvsnoWoqCLF1XH0klHSE3kJRDP7PzPV+P6sfrd5jZTa5O9wY0NHxHbg+ssowNWDAK jMZK0Qtbun2y4bsuxkmMQDRH3ZXywQU73104mMawS21UPnCx0hs79aj2FTAWAvr0G5Zk bxZmeY1y8kNyiwgFzrMFxb0Kd5/hqdAgiK5/yWb9dAnFsWl2bEa6+ntzVC/LqyX7KdsE qebdV3d2DvQAFlQK5j16Cw1+qqvmSmApY2GvOiRAmqs6XOLDd7R47nErQEM1ADlvsb3k CIGg== X-Google-Smtp-Source: ACcGV61mrD9eqhs6Y3Sph53EBteAZzSIYlvW15ySh9La2vNV0aqpQtde7IbKlj9BD/8p9DYuC53IiA== X-Received: by 2002:a5d:6707:: with SMTP id o7-v6mr10890380wru.326.1538485974696; Tue, 02 Oct 2018 06:12:54 -0700 (PDT) Received: from andreyknvl0.muc.corp.google.com ([2a00:79e0:15:10:84be:a42a:826d:c530]) by smtp.gmail.com with ESMTPSA id v10-v6sm17458681wrp.0.2018.10.02.06.12.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:53 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 6/8] fs, arm64: untag user address in copy_mount_options Date: Tue, 2 Oct 2018 15:12:41 +0200 Message-Id: X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 99186556f8d3..51f763fb9430 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2672,7 +2672,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 Tue Oct 2 13:12: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: 10623641 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 E399814BD for ; Tue, 2 Oct 2018 13:13:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D83922846C for ; Tue, 2 Oct 2018 13:13:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC29D28908; Tue, 2 Oct 2018 13:13: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=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 5AEBC288D2 for ; Tue, 2 Oct 2018 13:13:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A9F9E6B026A; Tue, 2 Oct 2018 09:12:58 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id A29DD6B026B; Tue, 2 Oct 2018 09:12: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 85AA06B026C; Tue, 2 Oct 2018 09:12:58 -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 16D356B026A for ; Tue, 2 Oct 2018 09:12:58 -0400 (EDT) Received: by mail-wr1-f72.google.com with SMTP id d16-v6so1543289wrr.17 for ; Tue, 02 Oct 2018 06:12: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=hNEOFJA3qECaqXrpJm2EBhk28wiALQ2kw33CEUTdhdg=; b=FrQzGeZreEDcNpGiRY4uyncpIeY8Kz9Oy6Jxcdwuk3/LpELrkIsOzQgFikHzl2h0P0 ot2KeYCiLflru8E2bEEJyJ9EHrOxK6ru/KK/R20o5fUrQ6E556YXgfZ/FrrmjIJGQLoE wRIDCnBNXQehUOFLPBFsyI6OGj2BlRFxT8TUnrUKLTIWeGchRW1UDGZ329Xvts7bAjWg j59xzgR5LgQk/1z9aCi1IPJYEfaZSrU32/Uh+pRNKmWSNhPCVIrrfcUlTaysIg7J2lFi XbiS/exdkVJDZoNL4dmyZMCvww3C9Ngxko3w0d7ihV7NKh3+MJI17rSpfIkFYZFcyzaK fRjw== X-Gm-Message-State: ABuFfoh7fc6jY3+eitjnEAiHwGol5g6yoFe3eOUGSiT2eZoioAo92kgG 2Mxd8akO3TE99VivT1z6HKXFXAvu8fNtEx1NptiPl8DGZ4b8ySwQCe3IBSc2V5EracMKevwVwsx nnRp6u4iCphCo1yfb62umO4LtrVV1uplP8/1SY6h/j4Jpt+aUp72ModocP79zSv5pM/ShaPuS4n BoOOJwb9CvOS9rySd+BGU4vZ+c37n1wnk8myFkRUxqwYqOHcPfw/FPjbzBQhV1u6AIdQbIihw9o 1D6RvDZkGsGFBro9Ue7rY5elXeHLMVKnC29BdOcOVQ9sXdAl7oDs/f0kXK2bHrZHYRBkY+lZF4J 3PJFTdpw5BC78RpXnzmfo1XTu2LbnP83hIxdfT7vlbazPYlunFP9cq/2QVQQQS6cEuTd6A1VfES k X-Received: by 2002:adf:81b5:: with SMTP id 50-v6mr9809011wra.10.1538485977531; Tue, 02 Oct 2018 06:12:57 -0700 (PDT) X-Received: by 2002:adf:81b5:: with SMTP id 50-v6mr9808959wra.10.1538485976663; Tue, 02 Oct 2018 06:12:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485976; cv=none; d=google.com; s=arc-20160816; b=gRtOq+5OeHEVLwmgcksPitPAEwfPj2rqrfUlIytCh8efWc/uF2dWVj5UDGU/dltmCG XfXT1LqkGWEyxa6O2fjOgLf5u/Ty/UVmEwF+HP4bbZzlM0VK9Wl+LPnDpWP/SbGyP2vS DTCl9sGVLP43cvphd6cW13DVO3e7+AS+VG/wNmCwPCtwsgTv3IkIiaUiP3nGcHebTJBl 4N1I6rSV79fK4nBPe0YEwsgNqCgUEI700hwNOsCQPJQxWHtFspfDQF7Hc91rhtCUaQfX uI2GQiDwAJLqy/HpkwfvRXJt6BQEq0zbAGAbrDHipZiv0rFYQL/rNtXHk3Uv3Wke1ywc g1Pw== 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=hNEOFJA3qECaqXrpJm2EBhk28wiALQ2kw33CEUTdhdg=; b=g+8zx/txbRP6Na/WXEKMo3gjZMX01YXi72+dTqSq1RxNsuOKP7M2tpb5EGeszwikb1 S5Md2Z9h3qSZAG3U12ic7t7vPPz8c6jm7Eja7pzN/a0JbWOO4rc9wVt/HkQaX9PkupYu kQV8vKaAgGMOQSBSxGFt9tmav657Al/suTTlgRJHXNugT75ln6dT3r7gFJguadHBIdUA SGZaPqmLdf8siIkgGivompeRHC00ITypWYIUAIrMiyxEcPR+iUwY25LWbYBZbb+3GXsG 0cv3ZmUIy3sruCIWP8GaiMuXX2xeD0ToTR5Y65QPanCtMdxluj+MPXL9nS41A0yazeB/ kbXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nNXdbbDg; 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 v12-v6sor10599692wrc.47.2018.10.02.06.12.56 for (Google Transport Security); Tue, 02 Oct 2018 06:12:56 -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=nNXdbbDg; 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=hNEOFJA3qECaqXrpJm2EBhk28wiALQ2kw33CEUTdhdg=; b=nNXdbbDg2VNy5SHxXbN+Ptyr1KLwmnSsBGGhJxCoeFHxmaR8fTh5dfCJuPuP2R7XcN 027ftARciHcerS2ELQQ0Z978f0Ec52kSHFCKqN2p00S/HUmL+4/+FNQ+Ee04V1jiecR8 HhckI+hYniaDUvRkL6ovrPKMPRzVpN0yqJRFIQYoJAbvkk98v1trRnIA9bACjz2T0htl sjhh3se+0ylvvlL4j4oFlIEkdCL/ALFEN07VsuQFmvaytb4hkV7XgiiEkG2pDFVbjLFm LQf987ZWYE7Z3lM2zVMpcuPdTXS7FNh6OcL7SSEDcP9l9TyEXua3IFp0e1iBvQrZGJ4M iEJw== X-Google-Smtp-Source: ACcGV62jbjfhc53LoCFPGDSIPFzkIzlh2/mWrosWETT93RgqVUF8Im7cl/cWkkH9GjoPBnJtS3XIfQ== X-Received: by 2002:adf:9792:: with SMTP id s18-v6mr11253044wrb.283.1538485976256; Tue, 02 Oct 2018 06:12: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 v10-v6sm17458681wrp.0.2018.10.02.06.12.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:55 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 7/8] arm64: update Documentation/arm64/tagged-pointers.txt Date: Tue, 2 Oct 2018 15:12:42 +0200 Message-Id: <47a464307d4df3c0cb65f88d1fe83f9a741dd74b.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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 | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt index a25a99e82bb1..ae877d185fdb 100644 --- a/Documentation/arm64/tagged-pointers.txt +++ b/Documentation/arm64/tagged-pointers.txt @@ -17,13 +17,21 @@ 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. +Some initial work for supporting non-zero address tags passed to the +kernel has been done. As of now, the kernel supports tags in: -This includes, but is not limited to, addresses found in: + - user fault addresses - - pointer arguments to system calls, including pointers in structures - passed to system calls, + - pointer arguments (including pointers in structures), which don't + describe virtual memory ranges, passed to system calls + +All other interpretations of userspace memory addresses by the kernel +assume an address tag of 0x00. This includes, but is not limited to, +addresses found in: + + - pointer arguments (including pointers in structures), which describe + virtual memory ranges, passed to memory system calls (mmap, mprotect, + etc.) - the stack pointer (sp), e.g. when interpreting it to deliver a signal, @@ -33,11 +41,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 Tue Oct 2 13:12: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: 10623643 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 211B813BB for ; Tue, 2 Oct 2018 13:13:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1535F2871E for ; Tue, 2 Oct 2018 13:13:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 08CCC288A9; Tue, 2 Oct 2018 13:13:21 +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 8DFF72871E for ; Tue, 2 Oct 2018 13:13:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E9B1B6B026C; Tue, 2 Oct 2018 09:12:59 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id E1F2C6B026D; Tue, 2 Oct 2018 09:12:59 -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 C9B746B026E; Tue, 2 Oct 2018 09:12:59 -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 70E856B026C for ; Tue, 2 Oct 2018 09:12:59 -0400 (EDT) Received: by mail-wr1-f72.google.com with SMTP id b17-v6so1679097wrq.0 for ; Tue, 02 Oct 2018 06:12:59 -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=jKYsVlgDfkccan6ieeKzVaMnn6OiwgAPoKEMH6GgvtQ=; b=ov7yHJnghpan+T+OZWlcGl7RGHjatmfffN4CpsIBWmXD7/g1YmIpLGcKUlal8H5L7B UpKAjHZWAR3f9uAm/xhGn38WTkzdm0tHKUWNrxVp4T97C2GbMl9uyajr0RCXMJT+uljC Jf+6mo4WuWcyv+l526Jv5rkykTeW+T5HrGhfrdwPS51WYEFa/f1z/9A4L/BF6EnqEr+L 4WWhB7WYiFJQoTqDYFqOCzSbP9NCt5aqON8YWI67yTrifiYGWd2h9L2MsgeXvsGpdLdb ha+IDYmMp3f5QaPBQ6i+ddvAykdpWMyLOSV6Pl/zdDW7K2CaJgDPATOoXCC/0s9Two/H Ttxw== X-Gm-Message-State: ABuFfogQNA4iJC+1iVaRfndkcT8cJuBIos3q2eQUy3SbpVpJy00huYlw 5HEkTHY0XZNzTGAQb470pUcPqK+uT+FFITCR3yHufLQUDyQqr6dSKfQ7JpWImEjrlegMNqBy5wN c7fB1VSi7rbRUnykBSVRVit8OHfPC5MdPOJz6LIpSXJRho2Gbb/87hHJi1FpeirFi034IqMOQ7I s99DXKrq7OHSnMKTutK8BeV0R98F2NVl3dWWa7PZW5t5r5WlzPAiOYyaUXHt6W6MtQ6D0dKlr+c aVH8VrYbAdCl3aWrk6/rIUK50QY+RZxxpOVxhPQ/Ljg9yoLnag02EYQJuRqIQoVGUuEk9rYJRSl WziA/iznY6CAJzDr8RZwguiIJGSpR9wDXisxrs1CBZpG6picnrEWG9tCllDD1ybZZqhLzh9TNdX y X-Received: by 2002:adf:d249:: with SMTP id o9-v6mr9800108wri.66.1538485978985; Tue, 02 Oct 2018 06:12:58 -0700 (PDT) X-Received: by 2002:adf:d249:: with SMTP id o9-v6mr9800080wri.66.1538485978258; Tue, 02 Oct 2018 06:12:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538485978; cv=none; d=google.com; s=arc-20160816; b=PBPmE54oCJI09cuGK+c939n75AAiJPPKtiBRc/z2TxU88gchrr3BS/D01UvWpVNagm 1cl1mA2YgxbS0dnm4dZA+JGk29e+P8Xs3oa+9xxqEe6blMtOLSu1gi2ANFS3LeMvOCL7 //jYyFE/SRLDoIw0ljwCKbalkiuEtDcrW53Zf2UXG8n/uwrmFVLrGrqZAaJOTSEMRBee t811uAkmv7ztaRb7L2LwVY1LgBcI27IUO2IY51L9PrYAfa3W7/Yw/uapu8MHXWjRuKJD YLTX9E7RNLf0rufaYLAZE/n/4RyCe1Hr4A4Z8PfTXZWjZV0U4Rq9JuT2hKApXW5w83GP NYyg== 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=jKYsVlgDfkccan6ieeKzVaMnn6OiwgAPoKEMH6GgvtQ=; b=LCtRzTbcGxW6fvK8vPmllU5XbCAtMv1bYgR3+7ZjnnaXXYQE+VkfvUL4F87JvT0t6z 81L82eFTGBKPMtskBPGRANKu/MQOyzvjqsMTCjZRwtK9ECs7ONAfrIhXNmHp40cPkPL8 z/5NjyyBjBGMpCoZ2b+Vq1EyF1z3KPwmsz+YsG+Yje8NMW5my5qsAKAzgaR9SD6UR1pJ w4fNObcC78LFsq+gMl0B7BddrbjFfeTaMBctq5oypsqTMig/cTpK3KKY5Su6h2V4lOgk ZPklpIUwV4deMsFWNxyk+gpu4jE8BUTKrvTxhqYET5ew3Mk6gD0C5B8UaG44eQz9WSr/ 04Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=dCBVcCGf; 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 i8-v6sor8305879wmg.26.2018.10.02.06.12.58 for (Google Transport Security); Tue, 02 Oct 2018 06:12: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=dCBVcCGf; 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=jKYsVlgDfkccan6ieeKzVaMnn6OiwgAPoKEMH6GgvtQ=; b=dCBVcCGfEkOp2yZaISW/VbCXrMw/roS3ig2VtB55vdMEYEdcc/N0JZvN/VK0XUG/vE q8IQc15Veee7CyQPFcN4SsbYldChP/FYEqamRzfm+EMDwScW4NnC7+nL/WVcXY4YkxXH IaLDvKPYeiZLSd6eTTyOwGRK7yY7FV+zz24fER4CRRtpt6fdP7FHKNa+sGQGNFp4xqiT 2ikGu6YSkQfB33XL8xLyxL9AM7V5tbcy1QM6XaN4QBbjg/hZJkmhb7/WqbYk+Q0i72PC 1E3XO0yS2UZtrhy8q6K5bwYxsqbd2crZpd+uOHwvRVP1OGBqcxh74WmYSqKcp9Zs8/Nq KaDg== X-Google-Smtp-Source: ACcGV61lYLeUyN6R/Xs9pciDC3H43amhfekx+exm3H5Gj+xhTN4aSmtpre7zcIkfD40I7FhghfLIPg== X-Received: by 2002:a1c:8bcc:: with SMTP id n195-v6mr1947045wmd.118.1538485977684; Tue, 02 Oct 2018 06:12: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 v10-v6sm17458681wrp.0.2018.10.02.06.12.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Oct 2018 06:12:56 -0700 (PDT) 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 , 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 , Andrey Konovalov Subject: [PATCH v7 8/8] selftests, arm64: add a selftest for passing tagged pointers to kernel Date: Tue, 2 Oct 2018 15:12:43 +0200 Message-Id: <3a2c0a6b2499a328cc9471d4095ae36f0f05252d.1538485901.git.andreyknvl@google.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-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; +}