From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 479BAC636D7 for ; Fri, 17 Feb 2023 10:05:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAF3E280001; Fri, 17 Feb 2023 05:05:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C5F0E6B0078; Fri, 17 Feb 2023 05:05:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B2607280001; Fri, 17 Feb 2023 05:05:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A038F6B0075 for ; Fri, 17 Feb 2023 05:05:47 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 74CF2161529 for ; Fri, 17 Feb 2023 10:05:47 +0000 (UTC) X-FDA: 80476352334.20.43BC70A Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf04.hostedemail.com (Postfix) with ESMTP id AB44D4000C for ; Fri, 17 Feb 2023 10:05:45 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=PG5Binl+; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676628345; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=o0uHfzgv2qkWN2QON21082yWHlyLvuVbZRGsDEiQa/4=; b=CqDpRzg/aE++aa0eQGTlpsJ+TJNWq9Qq+btRbK20qjhrEkBuchZLlBgJ8FzE10eUyNu/4U 25rVtBUsN3wsT9PoFuXEzqFCzc7OQJYai7ulrLNMNlS5NGTSi2SqU6vUoYhQ/UCoWl/iRa bzkY4orum34ylarT39vBcFJZXdbqIDw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=PG5Binl+; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676628345; a=rsa-sha256; cv=none; b=EqL3pVTsUX3en9rpyknoYZqr7/Zc0PAGT+AcBgmMWPIdM010/UOlbhJGoETLVH6/wZCLbx 9nJ8zQZBsbmsPmeZdU6KBPykrhjyROu6ZbIUYUoRwNQ4DVfR7QhoKMe6Ud+L7XDnt9TuC3 C98gEBXYkVP64bmTwizaYMb8f0XxZGw= Received: by mail-pl1-f176.google.com with SMTP id l9so2485507plk.3 for ; Fri, 17 Feb 2023 02:05:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=o0uHfzgv2qkWN2QON21082yWHlyLvuVbZRGsDEiQa/4=; b=PG5Binl+dYtv2Cjcd7RqW/ODxroR2V/J6A0O08t3kCKUF8DqL8yLPUONQMUKQscNc3 EQOKnQ1LZO+QtC2oIbLMYVKiKQ5ZZPxm6e7cVdvAoEdL0JmOjt2RbXSk8iN5tm8PVtjk drb9pAjO+9YmLFMNRCnS15J1CNjRPLu0CgLshdZQAhTbf22BJAq5Wyay1Ttu1b39GgDB cQIF+Na6tM2sQdzbEByGhcSp+ALgk/Bwujx0nQsjsC6pxexRv8fmTgEWTLNuqKhiYI1/ p6vtD2eluVvz+onwnkvOmMEHCXBIvBlaB5Q03/j3l74tHt7lwP4hcj356MYV7Eme+5hh 84og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o0uHfzgv2qkWN2QON21082yWHlyLvuVbZRGsDEiQa/4=; b=MLqVhY6gLXVUypVDSInxCzra+6NxorTtt6Zzxl2yA/gvigqglpuSh/rUHotjdh/URf nNYQvzfS/1Bz1ruCBuqD4NDSq4ltTVERbvCBBDZXXjyx2fnJY5wxeRLLrgLWjKoAEz1K SU4b9pPmNOtM+sN7ed1r7dYFInBWLhc2oHTKGSbWa6Sc0G5gcLf5PItgpv4LLdWHYfPm +BqaUk3c6giOeHr+QUaczVwJ1EsMKc9b/4iTye+KPs4Qohv4YdqIMOB2Ic5w5vTSAHUD /qPgOu5JVRX+GbidXj7hfYpDskBxQHnHeYLYVlQjVqPEPMMskfdG7LHaCPkBlvjzgEAn erFA== X-Gm-Message-State: AO0yUKVqLCV4nZZXy4GafsWZF+okXXMox+jZ44ViG25stglAkMOCiMVL JlzLNRQMf+ohdxHpuYfhW8cUdlEnCcGsRJ/ZQ9w= X-Google-Smtp-Source: AK7set+MJkoGKxQePTCKdXB2FoV2zsPtsTEyn2qp0w/jyI1frR8HQRwLH0Wl+vDAcweSTFzCmgnjz4WLhYSvR7RlX8E= X-Received: by 2002:a17:90b:1f8f:b0:233:3c5a:b41b with SMTP id so15-20020a17090b1f8f00b002333c5ab41bmr1384023pjb.133.1676628344552; Fri, 17 Feb 2023 02:05:44 -0800 (PST) MIME-Version: 1.0 References: <20230215050911.1433132-1-pcc@google.com> In-Reply-To: <20230215050911.1433132-1-pcc@google.com> From: Andrey Konovalov Date: Fri, 17 Feb 2023 11:05:33 +0100 Message-ID: Subject: Re: [PATCH v2] arm64: Reset KASAN tag in copy_highpage with HW tags only To: Peter Collingbourne Cc: catalin.marinas@arm.com, =?UTF-8?B?UXVuLXdlaSBMaW4gKOael+e+pOW0tCk=?= , =?UTF-8?B?R3Vhbmd5ZSBZYW5nICjmnajlhYnkuJop?= , linux-mm@kvack.org, =?UTF-8?B?Q2hpbndlbiBDaGFuZyAo5by16Yym5paHKQ==?= , kasan-dev@googlegroups.com, ryabinin.a.a@gmail.com, linux-arm-kernel@lists.infradead.org, vincenzo.frascino@arm.com, will@kernel.org, eugenis@google.com, =?UTF-8?B?S3Vhbi1ZaW5nIExlZSAo5p2O5Yag56mOKQ==?= , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: AB44D4000C X-Stat-Signature: su6xskgpab9no4ezrmkemdmfuzfnzrzo X-HE-Tag: 1676628345-892262 X-HE-Meta: U2FsdGVkX1+BjOjClS9YLW53YB0MmTsfNoEB6n1z0GbBh+dbV8sIqp2srt7sUmJo52KGgIiwhs2MV7Sp5Qwgr/XRLtwXxnch96v9DQv8QCnvu56IiLEPAGNAPuTWpsgafJP9Z+SpR3N87BSkrtiaxgVsTHXNj+cbzn4CGrAQ+LY7Mbew1DoGPpsvZTL/Nt+ZCphqe6Ypv+WTlDDgOhrOks3BgQNWlYpS+5ECQBSjB/4o2rtQDeFBwpL27bBRdxyzh7G+JhkOjGvpkuiHb4or3QluM+KZwhKOs+SURjeT2a1mukZEhZvqIht74a2otDvVjrvMl8TKfV7FoW682bYgwXq6etAc5Pfl+PsNG3v21MiQfAL3KNReS78KCb1D4a9bHe1sXoHahXvIL/x8sMwkCyhO23puCGnuXG9NcqAYXm5T9JpOGWjXQDikOhDtGPcXRSx/G3lIk9BRJgw7olS0tg1fdJEnBVh2ZlRfph+8byzSqp3xgI1JeUH4dJAHXmVNu0TZGewGeaeOUwFYu4Q5FdsrOw8J01Pmg9Vo4mGyDg9kQGMeVC7zpgwuAkB4QosvtSj+6aOdiGxEsXp9BMBTDJcp5rwwP3Fwcs/zi0/WUdnpYeCnRPkX6gfKM3s1l4QYYCVBU9cEl3e2FUERVqtnj51bXLRnIVxKFhR1Y7GHZQs7zIUBfEWcEWZ8LtU2tfIQQ42ssEJYTadgrTiOEMXPwc4+257d612p++baLFU2v267elyj4HIEptwmBoUSt2HYeKYEIFU/jIhoR9GUSBbF0FmIMV9JS51RM8YP3TWmsRn1ceS4GoGCngBw/9/IYX1h3nDxJtkWVEeU26LJnU5UJBIxinA8tcHTRY176FrNN7LoBpHmMSoLFdFDdVb1T1jvWcUJdPzwQZEYdMmZZ2sMRSqytuTwS8LtsF5BxnZHoNTC9gIEMtB3dau5FFmmZTOls6sdjA6JcZtkDPFnF2K YkrE39vH EitydOA81lXLAf7FPpVlxMBU4dKVCXHwSqO5Y0/737ZOQYxuHUqiroK26WjSLTDLNINVwcfQ2xDW8SVsZItaxd62o6OfxH2weCh9AwNa2NeiIe6nPZ/VGJ6aWT7sXjuVatTnfFx886Y3xCl5ICinvNecc5f/ZgkLKRnXBIJJ84ZVHxb1jm/RKJog3SMvooCDVL50u/fxvaN1/UELNFE3aUOnA6PcgDKpQJjO24JkKsGdR/H/g/z3VN+H8MZlg5brtc37zecTe9NXumhZzngwcO4aw3Fue1iqY4gAI9RhiroptSaQZ/bcmfMDVb8J1EyXrpxMKiosuxIwbH5kYjOH4sGQGrzoPDpPzkzxNKk6O2g4mHKJxPUQDFBBL33h7cHPKrKsgnaLmt2upqaPS1FaXNoIKZG4uQ7d0rYW7WwVhTsr5gENgiGC5MZSAVpEazyrKB+QshUwefzZtQYfhuXKNT1X1nFWhIJAXCGiorhdXJ+pW7psgFIljtDo1LnDZpzW40SUZeL98wt1jMWFhJRQEW00dTbEhok2wBgV9t5+x1dcUWPMUtKbiw4mMoMWS9ZDhaft/eQCzfTQVS4eYwqawfmgh/zBr4MRwinNG3czFTqwSGxn1htlghpU6bbURN1QTQGhWNmtSK8aHalcUCEj8pwDJPLIQ/1lYo90K92NEb0Bn2VeK3nA2EjZpHIVCBwCaXJSyfy1pELQjSOY= 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: On Wed, Feb 15, 2023 at 6:09 AM Peter Collingbourne wrote: > > During page migration, the copy_highpage function is used to copy the > page data to the target page. If the source page is a userspace page > with MTE tags, the KASAN tag of the target page must have the match-all > tag in order to avoid tag check faults during subsequent accesses to the > page by the kernel. However, the target page may have been allocated in > a number of ways, some of which will use the KASAN allocator and will > therefore end up setting the KASAN tag to a non-match-all tag. Therefore, > update the target page's KASAN tag to match the source page. > > We ended up unintentionally fixing this issue as a result of a bad > merge conflict resolution between commit e059853d14ca ("arm64: mte: > Fix/clarify the PG_mte_tagged semantics") and commit 20794545c146 ("arm64= : > kasan: Revert "arm64: mte: reset the page tag in page->flags""), which > preserved a tag reset for PG_mte_tagged pages which was considered to be > unnecessary at the time. Because SW tags KASAN uses separate tag storage, > update the code to only reset the tags when HW tags KASAN is enabled. > > Signed-off-by: Peter Collingbourne > Link: https://linux-review.googlesource.com/id/If303d8a709438d3ff5af5fd85= 706505830f52e0c > Reported-by: "Kuan-Ying Lee (=E6=9D=8E=E5=86=A0=E7=A9=8E)" > Cc: # 6.1 > Fixes: 20794545c146 ("arm64: kasan: Revert "arm64: mte: reset the page ta= g in page->flags"") > --- > v2: > - added Fixes tag > > For the stable branch, e059853d14ca needs to be cherry-picked and the fol= lowing > merge conflict resolution is needed: > > - page_kasan_tag_reset(to); > + if (kasan_hw_tags_enabled()) > + page_kasan_tag_reset(to); > - /* It's a new page, shouldn't have been tagged yet */ > - WARN_ON_ONCE(!try_page_mte_tagging(to)); > > arch/arm64/mm/copypage.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c > index 8dd5a8fe64b4..4aadcfb01754 100644 > --- a/arch/arm64/mm/copypage.c > +++ b/arch/arm64/mm/copypage.c > @@ -22,7 +22,8 @@ void copy_highpage(struct page *to, struct page *from) > copy_page(kto, kfrom); > > if (system_supports_mte() && page_mte_tagged(from)) { > - page_kasan_tag_reset(to); > + if (kasan_hw_tags_enabled()) > + page_kasan_tag_reset(to); > /* It's a new page, shouldn't have been tagged yet */ > WARN_ON_ONCE(!try_page_mte_tagging(to)); > mte_copy_page_tags(kto, kfrom); > -- > 2.39.1.581.gbfd45094c4-goog > Reviewed-by: Andrey Konovalov Thank you, Peter!