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=-17.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT, 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 09E86C11D0A for ; Thu, 20 Feb 2020 14:19:44 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B789D206E2 for ; Thu, 20 Feb 2020 14:19:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="CWg7cc5i" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B789D206E2 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 64CAB6B0007; Thu, 20 Feb 2020 09:19:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D63B6B0008; Thu, 20 Feb 2020 09:19:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4C5FE6B000A; Thu, 20 Feb 2020 09:19:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0073.hostedemail.com [216.40.44.73]) by kanga.kvack.org (Postfix) with ESMTP id 2FCF06B0007 for ; Thu, 20 Feb 2020 09:19:43 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id C160A8248047 for ; Thu, 20 Feb 2020 14:19:42 +0000 (UTC) X-FDA: 76510713804.29.fork33_37974c257f240 X-HE-Tag: fork33_37974c257f240 X-Filterd-Recvd-Size: 6253 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) by imf03.hostedemail.com (Postfix) with ESMTP for ; Thu, 20 Feb 2020 14:19:41 +0000 (UTC) Received: by mail-wm1-f73.google.com with SMTP id p2so653072wma.3 for ; Thu, 20 Feb 2020 06:19:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=518aQLJRI8AFjv7qv9JZfuL9toVQT5tEU8siwObWSF0=; b=CWg7cc5i1kMYEOXZGcc81lsT8KZNw+vzStKKyVRyifgNKES8AcSLbAgKlaNBIePjAB oFkkECMQ81Wx3MtQY0MBkBcPa46keE9QWpI+bEU0ZLL53cUFJ7VrOs4jiIWLkhiCwLTF ijAE61Q6ypT3+Ceb3DQUU/N1R08v9ZQH2oFXQIbWivw+sd3m4JZsbaE4YQl6Z0kQSzLD omD6W+crk8hahk09oAGsS5+csCmkPYDwbh0pLE2bdGdn0pw7PNbou/HpefxKISN3mb5s 8Bq5qpQZ3PryBaoaBJl3C+nxPFF4XsUItj1fR+R9tYQYShLAABxSVVUZU0FummftJJTJ Fo+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=518aQLJRI8AFjv7qv9JZfuL9toVQT5tEU8siwObWSF0=; b=hovrwSIireI11PsSB2VsDK10dw8gV8vXothrx0ckseqSFHCEXEVGaIKP7W0uuDab5D yqx65cOUeOZKic609l218qxWE2jEz3/8FgTBlxccTXZRWfrPHNmpL5udRwMxiThE0UzO nbOhBtrpTRXZFM7pCu0Q9pbn2ekoncqnGD+kKHCUrSDH7wzbVMVUXgMrdFflC94BfCIy /BXsIXN2U3prtKzgkUf5e5KFEV4Mijt2QVzOmf4XMtAgfXyhOsMKFAlRMbdM11zrbc7V MeF/qAO2FqY2LCTrjox3bGWHNDYJXbUF+a77blYFUtboZngdbrzD3gFzsB9BWxqXE7a/ +9dA== X-Gm-Message-State: APjAAAUPSBDyeq6F8H+5THCK0e47L78HNCi1QLvUV2meAytl4IY4M2EA JMDj5VTidjsCIBB1HPwpgYX1SiG86xQ= X-Google-Smtp-Source: APXvYqwBzC2qE4BKkiY1bqV3XKDAlLNqk/X08sP9fSBFQeMWM410TVt/LLLKf6BnorQYT1DjoR4sUk24g6g= X-Received: by 2002:adf:ecc2:: with SMTP id s2mr43534580wro.263.1582208380620; Thu, 20 Feb 2020 06:19:40 -0800 (PST) Date: Thu, 20 Feb 2020 15:19:16 +0100 In-Reply-To: <20200220141916.55455-1-glider@google.com> Message-Id: <20200220141916.55455-3-glider@google.com> Mime-Version: 1.0 References: <20200220141916.55455-1-glider@google.com> X-Mailer: git-send-email 2.25.0.265.gbab2e86ba0-goog Subject: [PATCH 3/3] kasan: stackdepot: move filter_irq_stacks() to stackdepot.c From: glider@google.com To: dvyukov@google.com, andreyknvl@google.com, aryabinin@virtuozzo.com, akpm@linux-foundation.org Cc: sergey.senozhatsky@gmail.com, arnd@arndb.de, linux-mm@kvack.org, vegard.nossum@oracle.com, elver@google.com, Alexander Potapenko 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: filter_irq_stacks() can be used by other tools (e.g. KMSAN), so it needs to be moved to a common location. lib/stackdepot.c seems a good place, as filter_irq_stacks() is usually applied to the output of stack_trace_save(). This patch has been previously mailed as part of KMSAN RFC patch series. Signed-off-by: Alexander Potapenko To: Alexander Potapenko Cc: Vegard Nossum Cc: Dmitry Vyukov Cc: Marco Elver Cc: Andrey Konovalov Cc: Andrey Ryabinin Cc: linux-mm@kvack.org --- include/linux/stackdepot.h | 2 ++ lib/stackdepot.c | 24 ++++++++++++++++++++++++ mm/kasan/common.c | 23 ----------------------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/include/linux/stackdepot.h b/include/linux/stackdepot.h index 3efa97d482cbe..24d49c732341a 100644 --- a/include/linux/stackdepot.h +++ b/include/linux/stackdepot.h @@ -19,4 +19,6 @@ depot_stack_handle_t stack_depot_save(unsigned long *entries, unsigned int stack_depot_fetch(depot_stack_handle_t handle, unsigned long **entries); +unsigned int filter_irq_stacks(unsigned long *entries, unsigned int nr_entries); + #endif diff --git a/lib/stackdepot.c b/lib/stackdepot.c index a2f6cb900db80..da5d1880bf343 100644 --- a/lib/stackdepot.c +++ b/lib/stackdepot.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include @@ -318,3 +319,26 @@ depot_stack_handle_t stack_depot_save(unsigned long *entries, return retval; } EXPORT_SYMBOL_GPL(stack_depot_save); + +static inline int in_irqentry_text(unsigned long ptr) +{ + return (ptr >= (unsigned long)&__irqentry_text_start && + ptr < (unsigned long)&__irqentry_text_end) || + (ptr >= (unsigned long)&__softirqentry_text_start && + ptr < (unsigned long)&__softirqentry_text_end); +} + +unsigned int filter_irq_stacks(unsigned long *entries, + unsigned int nr_entries) +{ + unsigned int i; + + for (i = 0; i < nr_entries; i++) { + if (in_irqentry_text(entries[i])) { + /* Include the irqentry function into the stack. */ + return i + 1; + } + } + return nr_entries; +} +EXPORT_SYMBOL_GPL(filter_irq_stacks); diff --git a/mm/kasan/common.c b/mm/kasan/common.c index 6aa51723b92b9..92815ef9c80d3 100644 --- a/mm/kasan/common.c +++ b/mm/kasan/common.c @@ -15,7 +15,6 @@ */ #include -#include #include #include #include @@ -42,28 +41,6 @@ #include "kasan.h" #include "../slab.h" -static inline int in_irqentry_text(unsigned long ptr) -{ - return (ptr >= (unsigned long)&__irqentry_text_start && - ptr < (unsigned long)&__irqentry_text_end) || - (ptr >= (unsigned long)&__softirqentry_text_start && - ptr < (unsigned long)&__softirqentry_text_end); -} - -static inline unsigned int filter_irq_stacks(unsigned long *entries, - unsigned int nr_entries) -{ - unsigned int i; - - for (i = 0; i < nr_entries; i++) { - if (in_irqentry_text(entries[i])) { - /* Include the irqentry function into the stack. */ - return i + 1; - } - } - return nr_entries; -} - static inline depot_stack_handle_t save_stack(gfp_t flags) { unsigned long entries[KASAN_STACK_DEPTH]; -- 2.25.0.265.gbab2e86ba0-goog