From patchwork Fri Mar 25 01:12:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12791177 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 608C5C433EF for ; Fri, 25 Mar 2022 01:12:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D4E8F8D0023; Thu, 24 Mar 2022 21:12:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D00768D0005; Thu, 24 Mar 2022 21:12:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BEC268D0023; Thu, 24 Mar 2022 21:12:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0068.hostedemail.com [216.40.44.68]) by kanga.kvack.org (Postfix) with ESMTP id ADAF88D0005 for ; Thu, 24 Mar 2022 21:12:28 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 6EFCE1829B8F3 for ; Fri, 25 Mar 2022 01:12:28 +0000 (UTC) X-FDA: 79281133176.21.5103C8B Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf28.hostedemail.com (Postfix) with ESMTP id F0586C002A for ; Fri, 25 Mar 2022 01:12:27 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id DBB99B82707; Fri, 25 Mar 2022 01:12:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EF6BC340EC; Fri, 25 Mar 2022 01:12:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1648170746; bh=4JjK8Jx3YlJUCJPuPZYeO4AyX6YNEqchKKAO5jD9YQg=; h=Date:To:From:In-Reply-To:Subject:From; b=jbe/7fBKTa2aJ0C8pb/Ir168YsaA/oyQRjKn59UIbLYiLwrQHxzZ14hbfhdSQv7pk 53jnJvLb3r4dFBKulfb+ytc0gVWy3eSZNx4jAcOnyGFtpkorgIjwF6tGHE0SUjX0yR aypu2CIsn2Pp5MVEXXSPwrTOclt6QBXTtc0M912M= Date: Thu, 24 Mar 2022 18:12:25 -0700 To: ryabinin.a.a@gmail.com,glider@google.com,elver@google.com,dvyukov@google.com,andreyknvl@google.com,akpm@linux-foundation.org,patches@lists.linux.dev,linux-mm@kvack.org,mm-commits@vger.kernel.org,torvalds@linux-foundation.org,akpm@linux-foundation.org From: Andrew Morton In-Reply-To: <20220324180758.96b1ac7e17675d6bc474485e@linux-foundation.org> Subject: [patch 077/114] kasan: print basic stack frame info for SW_TAGS Message-Id: <20220325011226.7EF6BC340EC@smtp.kernel.org> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: F0586C002A X-Stat-Signature: ca8j1wnqf5454tkq6mw5wgfrzao1gf9t X-Rspam-User: Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="jbe/7fBK"; dmarc=none; spf=pass (imf28.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org X-HE-Tag: 1648170747-682090 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: From: Andrey Konovalov Subject: kasan: print basic stack frame info for SW_TAGS Software Tag-Based mode tags stack allocations when CONFIG_KASAN_STACK is enabled. Print task name and id in reports for stack-related bugs. [andreyknvl@google.com: include linux/sched/task_stack.h] Link: https://lkml.kernel.org/r/d7598f11a34ed96e508f7640fa038662ed2305ec.1647099922.git.andreyknvl@google.com Link: https://lkml.kernel.org/r/029aaa87ceadde0702f3312a34697c9139c9fb53.1646237226.git.andreyknvl@google.com Signed-off-by: Andrey Konovalov Reviewed-by: Alexander Potapenko Cc: Andrey Ryabinin Cc: Dmitry Vyukov Cc: Marco Elver Signed-off-by: Andrew Morton --- mm/kasan/kasan.h | 2 +- mm/kasan/report_sw_tags.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) --- a/mm/kasan/kasan.h~kasan-print-basic-stack-frame-info-for-sw_tags +++ a/mm/kasan/kasan.h @@ -274,7 +274,7 @@ void *kasan_find_first_bad_addr(void *ad const char *kasan_get_bug_type(struct kasan_access_info *info); void kasan_metadata_fetch_row(char *buffer, void *row); -#if defined(CONFIG_KASAN_GENERIC) && defined(CONFIG_KASAN_STACK) +#if defined(CONFIG_KASAN_STACK) void kasan_print_address_stack_frame(const void *addr); #else static inline void kasan_print_address_stack_frame(const void *addr) { } --- a/mm/kasan/report_sw_tags.c~kasan-print-basic-stack-frame-info-for-sw_tags +++ a/mm/kasan/report_sw_tags.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -51,3 +52,14 @@ void kasan_print_tags(u8 addr_tag, const pr_err("Pointer tag: [%02x], memory tag: [%02x]\n", addr_tag, *shadow); } + +#ifdef CONFIG_KASAN_STACK +void kasan_print_address_stack_frame(const void *addr) +{ + if (WARN_ON(!object_is_on_stack(addr))) + return; + + pr_err("The buggy address belongs to stack of task %s/%d\n", + current->comm, task_pid_nr(current)); +} +#endif