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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61D29C433E6 for ; Tue, 19 Jan 2021 18:54:12 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id F411523105 for ; Tue, 19 Jan 2021 18:54:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F411523105 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 7F2F36B0005; Tue, 19 Jan 2021 11:43:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A3C56B0008; Tue, 19 Jan 2021 11:43:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B97F6B000A; Tue, 19 Jan 2021 11:43:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0235.hostedemail.com [216.40.44.235]) by kanga.kvack.org (Postfix) with ESMTP id 56B266B0005 for ; Tue, 19 Jan 2021 11:43:04 -0500 (EST) Received: from smtpin09.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 1766B8249980 for ; Tue, 19 Jan 2021 16:43:04 +0000 (UTC) X-FDA: 77723094288.09.place49_590983d27553 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin09.hostedemail.com (Postfix) with ESMTP id EF474180AD807 for ; Tue, 19 Jan 2021 16:43:03 +0000 (UTC) X-HE-Tag: place49_590983d27553 X-Filterd-Recvd-Size: 4402 Received: from mail-ed1-f74.google.com (mail-ed1-f74.google.com [209.85.208.74]) by imf26.hostedemail.com (Postfix) with ESMTP for ; Tue, 19 Jan 2021 16:43:03 +0000 (UTC) Received: by mail-ed1-f74.google.com with SMTP id m16so9622008edd.21 for ; Tue, 19 Jan 2021 08:43:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:message-id:mime-version:subject:from:to:cc; bh=Mv8HVHZiqq2Y22lxEuv91PTBTzfF3aDqkg+FO9Cjpcc=; b=sMDi4o9tE+P0gYCKpCsgSYKKMzx29ksE7m2wjA+KO85uTUpDuhkfMFInQgjkr8yfsF 8Q+wFUdrqk1EjqshuBKCk2MukU8b+SsvgvMNkzJnFpZ+5+xUVt6Qs5dIMg0XCcXb6Xj9 cr8Iw+xLquN+FrQyE32gFCNctBztV8F5MODxfHff/reLdviDiImV9OzLV9zzug4jYnvd hF17mG0QYbtONfqRYQjQKFPKxcGV2jzBvZps2e8ZHAGz6D4Do0vmkmRj/HjOD6nE3x+L aA0t0N5rsw39WKKfziJ5TFLsw3wE91T0MTd0gcS7HUVFWjqxD/TcQfNwQsBXHLl6ZHjq qpXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:message-id:mime-version:subject:from :to:cc; bh=Mv8HVHZiqq2Y22lxEuv91PTBTzfF3aDqkg+FO9Cjpcc=; b=DltOdFzpdOiA7ZWmcXf4QZ6IAZ/uVVtknboJ4f2yh/LE2Q2yeaAauHarbaFakIjO60 vFgUDztYqanpWvOETeIXEVfvHS3siUJ/W1KrqZ9EwnVryOwXQLuwsYnAO330U0oA/kwu FDKuSxz68W/9RuLvMRkEjaTbayUqqbWuXQyt4ERUNFgjGanHexFIGzH23WVAtyoI12Cb EaTcLGRPtTnUZN5ExAhZDy42U12Jq3Rbwn/kQke/zHQ97xwdTo+Cbx+G4pIOI+HVrzo8 6v36u9O48ktBHQTwYfH1LOmGuHDVnNLsCWY3u8IGoRKFyTgMjTbBYeVzGIGhto62mvfs GKxA== X-Gm-Message-State: AOAM533lL41hgxL5Ot6NzoiA4SIctSLcqfW6uB00D6KjNXF8kjS9l9qc wESgcgj5O7tcqC9te8MPMeZ6b+Zxet6yS6tt X-Google-Smtp-Source: ABdhPJyYT38o1pemfEC7bTB5RG+igiwtCnzLyzGxVJxVdrDLqyO+4RuE/lsIuIfAvcyeoJO0lx0Pv/cE4W8trvGg X-Received: from andreyknvl3.muc.corp.google.com ([2a00:79e0:15:13:7220:84ff:fe09:7e9d]) (user=andreyknvl job=sendgmr) by 2002:a17:906:351a:: with SMTP id r26mr3406466eja.204.1611074581393; Tue, 19 Jan 2021 08:43:01 -0800 (PST) Date: Tue, 19 Jan 2021 17:42:55 +0100 Message-Id: <02b5bcd692e912c27d484030f666b350ad7e4ae4.1611074450.git.andreyknvl@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.30.0.284.gd98b1dd5eaa7-goog Subject: [PATCH] kasan, mm: fix resetting page_alloc tags for HW_TAGS From: Andrey Konovalov To: Andrew Morton , Dmitry Vyukov , Alexander Potapenko , Marco Elver Cc: Catalin Marinas , Will Deacon , Vincenzo Frascino , Andrey Ryabinin , Peter Collingbourne , Evgenii Stepanov , Branislav Rankov , Kevin Brodsky , kasan-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" 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: A previous commit added resetting KASAN page tags to kernel_init_free_pages() to avoid false-positives due to accesses to metadata with the hardware tag-based mode. That commit did reset page tags before the metadata access, but didn't restore them after. As the result, KASAN fails to detect bad accesses to page_alloc allocations on some configurations. Fix this by recovering the tag after the metadata access. Fixes: aa1ef4d7b3f6 ("kasan, mm: reset tags when accessing metadata") Signed-off-by: Andrey Konovalov --- mm/page_alloc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index bdbec4c98173..8ef6fc53962a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1207,8 +1207,10 @@ static void kernel_init_free_pages(struct page *page, int numpages) /* s390's use of memset() could override KASAN redzones. */ kasan_disable_current(); for (i = 0; i < numpages; i++) { + u8 tag = page_kasan_tag(page + i); page_kasan_tag_reset(page + i); clear_highpage(page + i); + page_kasan_tag_set(page + i, tag); } kasan_enable_current(); } -- 2.30.0.284.gd98b1dd5eaa7-goog