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=-23.2 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_IN_DEF_DKIM_WL 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 D098CC4338F for ; Tue, 27 Jul 2021 07:11:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 548A760232 for ; Tue, 27 Jul 2021 07:11:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 548A760232 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 9DEC16B0036; Tue, 27 Jul 2021 03:11:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 98D6C6B005D; Tue, 27 Jul 2021 03:11:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 87B6F8D0001; Tue, 27 Jul 2021 03:11:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0226.hostedemail.com [216.40.44.226]) by kanga.kvack.org (Postfix) with ESMTP id 6B4406B0036 for ; Tue, 27 Jul 2021 03:11:04 -0400 (EDT) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 20D918249980 for ; Tue, 27 Jul 2021 07:11:04 +0000 (UTC) X-FDA: 78407496048.03.26D5D79 Received: from mail-ot1-f52.google.com (mail-ot1-f52.google.com [209.85.210.52]) by imf29.hostedemail.com (Postfix) with ESMTP id D6D019013A56 for ; Tue, 27 Jul 2021 07:11:03 +0000 (UTC) Received: by mail-ot1-f52.google.com with SMTP id c7-20020a9d27870000b02904d360fbc71bso12493124otb.10 for ; Tue, 27 Jul 2021 00:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=T4jXR1i3kQRbLOtYJPUwTyuXvag/F8LgWkncG8JS3kw=; b=ez4vH2iSyB0oa1ojnnUH/oppE2vInZw2DCUOsIJMczkkbCo0ZS4HOfnR+wwt08JB1/ 7q1jjUTru/9XpQaSTbBlRwAZtowDWooKcMqnfiEfIf1Dr8CKgwrQCM/qlxXAhd7KKXkf rU7MWbV7FnnRDNoOH5oR5N8n5zhUCreFiQaVQaR+w5K5l34zgfnqfD8MBJGoWoqZfyfM Nu7zTgE2WC5ZGRr6Pevcop7KacBGQyqippbdLEG86KFE9yVcfj4cdhkbsSXLb+YuJG6O AfhzUPokeRZQcTgonnXM/FDIkMgo7udEpWmVphlhnRQSPhM0vZsM21fHWLj//wG5unao Tukg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=T4jXR1i3kQRbLOtYJPUwTyuXvag/F8LgWkncG8JS3kw=; b=EWEIYN2IGnIQekWB4sfzN215ABCYTvt7u4oUpZxrzRMKr3d5LhqIScOGHuqKdGbdJI F/RlaRdQBqGa2WNZnqqWka58JfabiS/FuplXvyUxUahNjzkvuo4UIgGZ/AeeJwik//r2 zUL3PCBlygTHyf1OyC74LKdkSeFs7EYpFUEWVIOSVq8EeK74bCnlo9uJDMDDMxTRxL2n v1mY9c0imFIFRuXiJv8vwlqkpP02cN7fBrCn0aBNfEMaFJLo2AEhwL//kKhXTZBPMlsa GtzhETfFrdinqyDicnhePIfXc53O+9H+WEzM3/U+2VY7SfkXr8Vv5IHZ0GXZvidNwnsq ei3Q== X-Gm-Message-State: AOAM533vYZNBTLR6lqGqIpOVq/fzucFgdtFNI8IZ8J8K4Yc3zIhKT0hs zhqv3WYDRoYb8SMXDX0nG2K6AQKDJmSjlQU8E/spgQ== X-Google-Smtp-Source: ABdhPJzcx3FBzoI6gvI0bU/P3mLzZFisd8fyRX2ATyO+zv46x7mk7zcvY5u+dCccKFE1pqsqiD0miKrhnqQkq6ZE20Q= X-Received: by 2002:a9d:d04:: with SMTP id 4mr15077003oti.251.1627369862852; Tue, 27 Jul 2021 00:11:02 -0700 (PDT) MIME-Version: 1.0 References: <20210727040021.21371-1-Kuan-Ying.Lee@mediatek.com> <20210727040021.21371-2-Kuan-Ying.Lee@mediatek.com> In-Reply-To: <20210727040021.21371-2-Kuan-Ying.Lee@mediatek.com> From: Marco Elver Date: Tue, 27 Jul 2021 09:10:51 +0200 Message-ID: Subject: Re: [PATCH 1/2] kasan, mm: reset tag when access metadata To: Kuan-Ying Lee Cc: Nicholas Tang , Andrew Yang , Andrey Konovalov , Andrey Ryabinin , Alexander Potapenko , Chinwen Chang , Andrew Morton , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Catalin Marinas Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D6D019013A56 Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20161025 header.b=ez4vH2iS; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf29.hostedemail.com: domain of elver@google.com designates 209.85.210.52 as permitted sender) smtp.mailfrom=elver@google.com X-Stat-Signature: 77ohu18jdwmrdnyqtg56dxbqos5q4irz X-HE-Tag: 1627369863-799624 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: +Cc Catalin On Tue, 27 Jul 2021 at 06:00, Kuan-Ying Lee wrote: > > Hardware tag-based KASAN doesn't use compiler instrumentation, we > can not use kasan_disable_current() to ignore tag check. > > Thus, we need to reset tags when accessing metadata. > > Signed-off-by: Kuan-Ying Lee This looks reasonable, but the patch title is not saying this is kmemleak, nor does the description say what the problem is. What problem did you encounter? Was it a false positive? Perhaps this should have been "kmemleak, kasan: reset pointer tags to avoid false positives" ? > --- > mm/kmemleak.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/kmemleak.c b/mm/kmemleak.c > index 228a2fbe0657..73d46d16d575 100644 > --- a/mm/kmemleak.c > +++ b/mm/kmemleak.c > @@ -290,7 +290,7 @@ static void hex_dump_object(struct seq_file *seq, > warn_or_seq_printf(seq, " hex dump (first %zu bytes):\n", len); > kasan_disable_current(); > warn_or_seq_hex_dump(seq, DUMP_PREFIX_NONE, HEX_ROW_SIZE, > - HEX_GROUP_SIZE, ptr, len, HEX_ASCII); > + HEX_GROUP_SIZE, kasan_reset_tag((void *)ptr), len, HEX_ASCII); > kasan_enable_current(); > } > > @@ -1171,7 +1171,7 @@ static bool update_checksum(struct kmemleak_object *object) > > kasan_disable_current(); > kcsan_disable_current(); > - object->checksum = crc32(0, (void *)object->pointer, object->size); > + object->checksum = crc32(0, kasan_reset_tag((void *)object->pointer), object->size); > kasan_enable_current(); > kcsan_enable_current(); > > @@ -1246,7 +1246,7 @@ static void scan_block(void *_start, void *_end, > break; > > kasan_disable_current(); > - pointer = *ptr; > + pointer = *(unsigned long *)kasan_reset_tag((void *)ptr); > kasan_enable_current(); > > untagged_ptr = (unsigned long)kasan_reset_tag((void *)pointer); > -- > 2.18.0 > > -- > You received this message because you are subscribed to the Google Groups "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20210727040021.21371-2-Kuan-Ying.Lee%40mediatek.com.