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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73C0AC636CC for ; Tue, 14 Feb 2023 01:52:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230514AbjBNBwr (ORCPT ); Mon, 13 Feb 2023 20:52:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230497AbjBNBwq (ORCPT ); Mon, 13 Feb 2023 20:52:46 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63D0A1A95B for ; Mon, 13 Feb 2023 17:52:30 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-5005ef73cf3so143793817b3.2 for ; Mon, 13 Feb 2023 17:52:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:from:subject:mime-version :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=2J+3GOG2P0hnwklMWKGq0tLBKfNtpEESwIEDcAq6rlI=; b=cF3vp2hnvMgG9ens+55wFDLcpBIkUkt4Nr/ypQnsswmAhEKnCMkvo8mhtgwk6R2oWI hnMGi8RcYBDYS6G4DDTcN8MUzkLnggjUk60MrjOF4qdbV194PhN2YZqViUOzWTyIcQJ6 brzQ5pW4Q58FaWVJNjaNBxB2xGQ4iKx4H373x7OOuRmEN96Xjvrh0gCNa6HTX6opFTlJ qOlGG819eQxpIR8i/XLQ64Ea+m3or5yzSsVe0t95k1uYg1O6kfvdyJDKv9u0PVB7y9r4 fjTDsRkGaP8mohZ7h8DRJ8Wp/HnJAyL73ibTgS74esVy7uZVBqUF5/4Op1M/HpywygD3 rtJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:from:subject:mime-version :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2J+3GOG2P0hnwklMWKGq0tLBKfNtpEESwIEDcAq6rlI=; b=SF3b7YYGmGoYy5z/TS5mjRydebDqIxuqFEQpBT2StvgUTwclJGFh9r5lmNWNo591AF k9yrdzRZd4VysT3aX+1RKox+jZ5Q6QnRAtulliy2tWNeoryRIgDu85KRNd94M7qfSo6p KHonhl10083o1b8E8D7ca3sNVk0hvmRx1HLcK1q/r4Qh0kVXg+LvGP4rtzPoCAotqe0q S92N1Dz4NC7u5VKKsST3sNcG29gLMgD1oSsBiV9Pro2KqGg6p28Ze9onVtg2Idq6Vz9+ zkpraLSNB9ulLvCxXCtgO180YUldZ/ZJuAAoK8pLQQBg7VyeVO9g0N0PmeT6zcqDke1v NBHg== X-Gm-Message-State: AO0yUKWiNxwvJoj7zLG9/INo6zd1lGr5PaNfdxEdt/yI9zfyD/VxH3bq vAJg5fKyEuHca6E9pzCui07Tv+A= X-Google-Smtp-Source: AK7set8JX2UCuUx1r/BRaJun6ZhAJ9kw7czlUn0qrE78/cOFud3HqDmluAZSD4UYPrIYk/Z3I/l8GIk= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2d3:205:6153:a2b0:1bfd:87af]) (user=pcc job=sendgmr) by 2002:a05:6902:1147:b0:8df:1fcb:f1c8 with SMTP id p7-20020a056902114700b008df1fcbf1c8mr9ybu.2.1676339549200; Mon, 13 Feb 2023 17:52:29 -0800 (PST) Date: Mon, 13 Feb 2023 17:52:14 -0800 Message-Id: <20230214015214.747873-1-pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.39.1.581.gbfd45094c4-goog Subject: [PATCH] arm64: Reset KASAN tag in copy_highpage with HW tags only From: Peter Collingbourne To: catalin.marinas@arm.com, andreyknvl@gmail.com Cc: Peter Collingbourne , "=?UTF-8?q?Qun-wei=20Lin=20=28=E6=9E=97=E7=BE=A4=E5=B4=B4=29?=" , "=?UTF-8?q?Guangye=20Yang=20=28=E6=9D=A8=E5=85=89=E4=B8=9A=29?=" , linux-mm@kvack.org, "=?UTF-8?q?Chinwen=20Chang=20=28=E5=BC=B5=E9=8C=A6=E6=96=87=29?=" , 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?q?Kuan-Ying=20Lee=20=28=E6=9D=8E=E5=86=A0=E7=A9=8E=29?=" , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org 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/If303d8a709438d3ff5af5fd8570= 6505830f52e0c Reported-by: "Kuan-Ying Lee (=E6=9D=8E=E5=86=A0=E7=A9=8E)" Cc: # 6.1 --- For the stable branch, e059853d14ca needs to be cherry-picked and the follo= wing 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); =20 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); --=20 2.39.1.581.gbfd45094c4-goog 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 82804C636D4 for ; Tue, 14 Feb 2023 01:53:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Mime-Version: Message-Id:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=AdFsLhcMbMh/N0b1mDbUdGZ13lfrO+L5aan5CEZkOuw=; b=woU NXl6XhBWqFpgWJttRY+6oz2vxLVREy72zH2IHshmbUPV88814wZZ+YJg1fM9uDLCztnJ98WXuzzMq yxF88aZn5qzGTRI1rWZHUoRFIu+y5xpQ2DLX9UR9NTFqrHDqfzZfYUfabKiZqeqHkH6a6PrHNnYEL khNhPa/4BySiz1KzKspk6qFDGjsELi6RWyi60lmyDZLzln+7JcPpXe7qH/W7UvHdwQfaY1/KtyGWp Y+EXiEOHFlLxCeR9DAu/yL32uZLS33raIGDBnEKk52F1AYYfMw46zudvV45SiXanGje6rpC5NZJun 2oIqnXi1XJJllqI98cJ02VjtlHwofKQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pRkUn-00H2jH-6j; Tue, 14 Feb 2023 01:52:37 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pRkUj-00H2hq-Pg for linux-arm-kernel@lists.infradead.org; Tue, 14 Feb 2023 01:52:35 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-52f233aff21so44232177b3.7 for ; Mon, 13 Feb 2023 17:52:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:from:subject:mime-version :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=2J+3GOG2P0hnwklMWKGq0tLBKfNtpEESwIEDcAq6rlI=; b=cF3vp2hnvMgG9ens+55wFDLcpBIkUkt4Nr/ypQnsswmAhEKnCMkvo8mhtgwk6R2oWI hnMGi8RcYBDYS6G4DDTcN8MUzkLnggjUk60MrjOF4qdbV194PhN2YZqViUOzWTyIcQJ6 brzQ5pW4Q58FaWVJNjaNBxB2xGQ4iKx4H373x7OOuRmEN96Xjvrh0gCNa6HTX6opFTlJ qOlGG819eQxpIR8i/XLQ64Ea+m3or5yzSsVe0t95k1uYg1O6kfvdyJDKv9u0PVB7y9r4 fjTDsRkGaP8mohZ7h8DRJ8Wp/HnJAyL73ibTgS74esVy7uZVBqUF5/4Op1M/HpywygD3 rtJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:from:subject:mime-version :message-id:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2J+3GOG2P0hnwklMWKGq0tLBKfNtpEESwIEDcAq6rlI=; b=c2YKNXnvS1hVP0aJOVWJCX3uNMesKQ+2xvqRaIUKJO7ZJuDDi9Fe1ufyz6RzD2WNE4 GVsCF+JyGmC9WmR9AO6c7xNgyS+bKZc4jLBivv0Gn0FfYelq2p7ZNFJN1/PP9DJjKw46 k3zIgkEIWvr5vXEWQCIEg88dCQ5AMmi6Eo3N49Cw52I4gCyyjFfFRrQJtQ1yxHeY+qDO ShPSDnrN6qsOi3PqOe6afMxrMYVJgM5e60ZfMNUYtFlvGF7h1QAN32CIgU9oHRbeBT4x TLak6lYbFhSIUWLKwreEl+u5D7PE24Tupu1Xk6cJar1ciGZ4XsZQkZxzj1bU9zAaysqa 5JQg== X-Gm-Message-State: AO0yUKVc1PsMmOxi7XMQnkQTb+7d26knRZB+2jgV5+GlmbJ6LzEsgO7L 50MSrKrWIz58TqklKddTNCXcH7Y= X-Google-Smtp-Source: AK7set8JX2UCuUx1r/BRaJun6ZhAJ9kw7czlUn0qrE78/cOFud3HqDmluAZSD4UYPrIYk/Z3I/l8GIk= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2d3:205:6153:a2b0:1bfd:87af]) (user=pcc job=sendgmr) by 2002:a05:6902:1147:b0:8df:1fcb:f1c8 with SMTP id p7-20020a056902114700b008df1fcbf1c8mr9ybu.2.1676339549200; Mon, 13 Feb 2023 17:52:29 -0800 (PST) Date: Mon, 13 Feb 2023 17:52:14 -0800 Message-Id: <20230214015214.747873-1-pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.39.1.581.gbfd45094c4-goog Subject: [PATCH] arm64: Reset KASAN tag in copy_highpage with HW tags only From: Peter Collingbourne To: catalin.marinas@arm.com, andreyknvl@gmail.com Cc: Peter Collingbourne , "=?UTF-8?q?Qun-wei=20Lin=20=28=E6=9E=97=E7=BE=A4=E5=B4=B4=29?=" , "=?UTF-8?q?Guangye=20Yang=20=28=E6=9D=A8=E5=85=89=E4=B8=9A=29?=" , linux-mm@kvack.org, "=?UTF-8?q?Chinwen=20Chang=20=28=E5=BC=B5=E9=8C=A6=E6=96=87=29?=" , 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?q?Kuan-Ying=20Lee=20=28=E6=9D=8E=E5=86=A0=E7=A9=8E=29?=" , stable@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230213_175233_856612_B7FC9782 X-CRM114-Status: GOOD ( 15.70 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RHVyaW5nIHBhZ2UgbWlncmF0aW9uLCB0aGUgY29weV9oaWdocGFnZSBmdW5jdGlvbiBpcyB1c2Vk IHRvIGNvcHkgdGhlCnBhZ2UgZGF0YSB0byB0aGUgdGFyZ2V0IHBhZ2UuIElmIHRoZSBzb3VyY2Ug cGFnZSBpcyBhIHVzZXJzcGFjZSBwYWdlCndpdGggTVRFIHRhZ3MsIHRoZSBLQVNBTiB0YWcgb2Yg dGhlIHRhcmdldCBwYWdlIG11c3QgaGF2ZSB0aGUgbWF0Y2gtYWxsCnRhZyBpbiBvcmRlciB0byBh dm9pZCB0YWcgY2hlY2sgZmF1bHRzIGR1cmluZyBzdWJzZXF1ZW50IGFjY2Vzc2VzIHRvIHRoZQpw YWdlIGJ5IHRoZSBrZXJuZWwuIEhvd2V2ZXIsIHRoZSB0YXJnZXQgcGFnZSBtYXkgaGF2ZSBiZWVu IGFsbG9jYXRlZCBpbgphIG51bWJlciBvZiB3YXlzLCBzb21lIG9mIHdoaWNoIHdpbGwgdXNlIHRo ZSBLQVNBTiBhbGxvY2F0b3IgYW5kIHdpbGwKdGhlcmVmb3JlIGVuZCB1cCBzZXR0aW5nIHRoZSBL QVNBTiB0YWcgdG8gYSBub24tbWF0Y2gtYWxsIHRhZy4gVGhlcmVmb3JlLAp1cGRhdGUgdGhlIHRh cmdldCBwYWdlJ3MgS0FTQU4gdGFnIHRvIG1hdGNoIHRoZSBzb3VyY2UgcGFnZS4KCldlIGVuZGVk IHVwIHVuaW50ZW50aW9uYWxseSBmaXhpbmcgdGhpcyBpc3N1ZSBhcyBhIHJlc3VsdCBvZiBhIGJh ZAptZXJnZSBjb25mbGljdCByZXNvbHV0aW9uIGJldHdlZW4gY29tbWl0IGUwNTk4NTNkMTRjYSAo ImFybTY0OiBtdGU6CkZpeC9jbGFyaWZ5IHRoZSBQR19tdGVfdGFnZ2VkIHNlbWFudGljcyIpIGFu ZCBjb21taXQgMjA3OTQ1NDVjMTQ2ICgiYXJtNjQ6Cmthc2FuOiBSZXZlcnQgImFybTY0OiBtdGU6 IHJlc2V0IHRoZSBwYWdlIHRhZyBpbiBwYWdlLT5mbGFncyIiKSwgd2hpY2gKcHJlc2VydmVkIGEg dGFnIHJlc2V0IGZvciBQR19tdGVfdGFnZ2VkIHBhZ2VzIHdoaWNoIHdhcyBjb25zaWRlcmVkIHRv IGJlCnVubmVjZXNzYXJ5IGF0IHRoZSB0aW1lLiBCZWNhdXNlIFNXIHRhZ3MgS0FTQU4gdXNlcyBz ZXBhcmF0ZSB0YWcgc3RvcmFnZSwKdXBkYXRlIHRoZSBjb2RlIHRvIG9ubHkgcmVzZXQgdGhlIHRh Z3Mgd2hlbiBIVyB0YWdzIEtBU0FOIGlzIGVuYWJsZWQuCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBD b2xsaW5nYm91cm5lIDxwY2NAZ29vZ2xlLmNvbT4KTGluazogaHR0cHM6Ly9saW51eC1yZXZpZXcu Z29vZ2xlc291cmNlLmNvbS9pZC9JZjMwM2Q4YTcwOTQzOGQzZmY1YWY1ZmQ4NTcwNjUwNTgzMGY1 MmUwYwpSZXBvcnRlZC1ieTogIkt1YW4tWWluZyBMZWUgKOadjuWGoOepjikiIDxLdWFuLVlpbmcu TGVlQG1lZGlhdGVrLmNvbT4KQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjIDYuMQotLS0K Rm9yIHRoZSBzdGFibGUgYnJhbmNoLCBlMDU5ODUzZDE0Y2EgbmVlZHMgdG8gYmUgY2hlcnJ5LXBp Y2tlZCBhbmQgdGhlIGZvbGxvd2luZwptZXJnZSBjb25mbGljdCByZXNvbHV0aW9uIGlzIG5lZWRl ZDoKCi0gICAgICAgICAgICAgICBwYWdlX2thc2FuX3RhZ19yZXNldCh0byk7CisgICAgICAgICAg ICAgICBpZiAoa2FzYW5faHdfdGFnc19lbmFibGVkKCkpCisgICAgICAgICAgICAgICAgICAgICAg IHBhZ2Vfa2FzYW5fdGFnX3Jlc2V0KHRvKTsKIC0gICAgICAgICAgICAgIC8qIEl0J3MgYSBuZXcg cGFnZSwgc2hvdWxkbid0IGhhdmUgYmVlbiB0YWdnZWQgeWV0ICovCiAtICAgICAgICAgICAgICBX QVJOX09OX09OQ0UoIXRyeV9wYWdlX210ZV90YWdnaW5nKHRvKSk7CgogYXJjaC9hcm02NC9tbS9j b3B5cGFnZS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L21tL2NvcHlwYWdlLmMgYi9hcmNoL2Fy bTY0L21tL2NvcHlwYWdlLmMKaW5kZXggOGRkNWE4ZmU2NGI0Li40YWFkY2ZiMDE3NTQgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtNjQvbW0vY29weXBhZ2UuYworKysgYi9hcmNoL2FybTY0L21tL2NvcHlw YWdlLmMKQEAgLTIyLDcgKzIyLDggQEAgdm9pZCBjb3B5X2hpZ2hwYWdlKHN0cnVjdCBwYWdlICp0 bywgc3RydWN0IHBhZ2UgKmZyb20pCiAJY29weV9wYWdlKGt0bywga2Zyb20pOwogCiAJaWYgKHN5 c3RlbV9zdXBwb3J0c19tdGUoKSAmJiBwYWdlX210ZV90YWdnZWQoZnJvbSkpIHsKLQkJcGFnZV9r YXNhbl90YWdfcmVzZXQodG8pOworCQlpZiAoa2FzYW5faHdfdGFnc19lbmFibGVkKCkpCisJCQlw YWdlX2thc2FuX3RhZ19yZXNldCh0byk7CiAJCS8qIEl0J3MgYSBuZXcgcGFnZSwgc2hvdWxkbid0 IGhhdmUgYmVlbiB0YWdnZWQgeWV0ICovCiAJCVdBUk5fT05fT05DRSghdHJ5X3BhZ2VfbXRlX3Rh Z2dpbmcodG8pKTsKIAkJbXRlX2NvcHlfcGFnZV90YWdzKGt0bywga2Zyb20pOwotLSAKMi4zOS4x LjU4MS5nYmZkNDUwOTRjNC1nb29nCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=