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.3 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=unavailable 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 54563C433E6 for ; Fri, 22 Jan 2021 14:45:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 255CA239D1 for ; Fri, 22 Jan 2021 14:45:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728886AbhAVOol (ORCPT ); Fri, 22 Jan 2021 09:44:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54890 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728793AbhAVOm4 (ORCPT ); Fri, 22 Jan 2021 09:42:56 -0500 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51BF6C061786 for ; Fri, 22 Jan 2021 06:42:14 -0800 (PST) Received: by mail-pf1-x433.google.com with SMTP id 11so3836205pfu.4 for ; Fri, 22 Jan 2021 06:42:14 -0800 (PST) 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=TDW0uo0U4I8F8s+gzPDSjcYPS9epJOiCg4X2p7A7eF4=; b=VswbVDlWLOpcZ32hSYINsQeKvp4aICDDhmjx2WDwPSsC+blSNkZAGtgq+vsZVIcRjR AT0gO2Nf2f2mb3VLFeyxAFfOWEf2pGrlB3EuiEKQtixdGpsxCOlmGORV0eGsHc+StOWO WUgguwnb8qkDiugN5ZeJQfle1EVaYhlC4aNL5DiTRW1AqdxUxPXGMz3JynLlW9oCY7xH 3sqiXHU+J5u0LdbbrW75Gxh/CQsLqdMhyBfrCDnJESrC/hRY0I3Pi99t85hbNg+elmiL Go22xae3WIqWMXSlhU6HdD/uBxLCTXGNda6Wmz0+7xH/wo9CWY06v7OEj/uPQbmtXAiT L1CQ== 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=TDW0uo0U4I8F8s+gzPDSjcYPS9epJOiCg4X2p7A7eF4=; b=CXHjpWFl3fgqM6G1nDgPRwa2N95RYZmjcQFXCkffe02xscJ8vz5mSwBobmFrldzrVU p/PeHAUePDt2CyJUngb/vtRBAe4RI05/yytwh+9+1O0fMQavJkZZ2kPkTEKeRlejq7Gq PrFP8uMg8YQ14yGMkmZwCJSLcKnIvar3ihx1FfQWeUZds7ypCPtqbmXQTob0PNP8tRf/ QSncTlodOiI/2px12I3eBokOEpyjjJMVXarm2Z4sSiU7re4RAzGoEsJxhZcMMw59owHY oF+jC2CjLuH/UwXatgsPndBsPo1P3GStLsPPjwL5k3xy/QU4jXC6SCATBurnTEOK53ds Z54A== X-Gm-Message-State: AOAM53180uCEecQyDO2aXPQ7MWOoqU803zYpzv2tUvBkMRLv7nZMVPbE eUIZRc5NJC9Gh+5MZlUtOsPm3QD2qvNTgRz7VWNGzg== X-Google-Smtp-Source: ABdhPJy7eF4qouYDgxFSogoAOjI/HoTypMGg98Lxr/e9DPp0q6sNb04A342nzyC3elmXD5aj1J3p6AnGZ88Yvqi9eNM= X-Received: by 2002:a63:4644:: with SMTP id v4mr4977707pgk.440.1611326533664; Fri, 22 Jan 2021 06:42:13 -0800 (PST) MIME-Version: 1.0 References: <20210122141125.36166-1-vincenzo.frascino@arm.com> <20210122141125.36166-4-vincenzo.frascino@arm.com> In-Reply-To: <20210122141125.36166-4-vincenzo.frascino@arm.com> From: Andrey Konovalov Date: Fri, 22 Jan 2021 15:42:02 +0100 Message-ID: Subject: Re: [PATCH v7 3/4] kasan: Add report for async mode To: Vincenzo Frascino Cc: Linux ARM , LKML , kasan-dev , Catalin Marinas , Will Deacon , Dmitry Vyukov , Andrey Ryabinin , Alexander Potapenko , Marco Elver , Evgenii Stepanov , Branislav Rankov Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 22, 2021 at 3:11 PM Vincenzo Frascino wrote: > > KASAN provides an asynchronous mode of execution. > > Add reporting functionality for this mode. > > Cc: Dmitry Vyukov > Cc: Andrey Ryabinin > Cc: Alexander Potapenko > Cc: Andrey Konovalov > Reviewed-by: Andrey Konovalov > Signed-off-by: Vincenzo Frascino > --- > include/linux/kasan.h | 2 ++ > mm/kasan/report.c | 13 +++++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > index bb862d1f0e15..b0a1d9dfa85c 100644 > --- a/include/linux/kasan.h > +++ b/include/linux/kasan.h > @@ -351,6 +351,8 @@ static inline void *kasan_reset_tag(const void *addr) > bool kasan_report(unsigned long addr, size_t size, > bool is_write, unsigned long ip); > > +void kasan_report_async(void); > + > #else /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ > > static inline void *kasan_reset_tag(const void *addr) > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > index 234f35a84f19..1390da06a988 100644 > --- a/mm/kasan/report.c > +++ b/mm/kasan/report.c > @@ -358,6 +358,19 @@ void kasan_report_invalid_free(void *object, unsigned long ip) > end_report(&flags); > } > > +#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS) This looks wrong, CONFIG_KASAN_SW_TAGS doesn't use MTE, so this function isn't needed for that mode. Let's add an #ifdef CONFIG_KASAN_HW_TAGS section in include/linux/kasan.h after the HW/SW one with kasan_report(). And only leave CONFIG_KASAN_HW_TAGS in mm/kasan/report.c too. > +void kasan_report_async(void) > +{ > + unsigned long flags; > + > + start_report(&flags); > + pr_err("BUG: KASAN: invalid-access\n"); > + pr_err("Asynchronous mode enabled: no access details available\n"); > + dump_stack(); > + end_report(&flags); > +} > +#endif /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ > + > static void __kasan_report(unsigned long addr, size_t size, bool is_write, > unsigned long ip) > { > -- > 2.30.0 > 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=-13.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 2FA01C433E0 for ; Fri, 22 Jan 2021 14:43:52 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D9D3623444 for ; Fri, 22 Jan 2021 14:43:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9D3623444 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8f6l+fCyvQ8d+Krpfn5gp6xYXeKJg2HZe/F2InT21n4=; b=gzZK8XKrKIM5xGvmvJtQuk5wk RJhp5Vfla25gvC22xT2rXZjecFEw6tC7m+cKrNLuWAgPDJtjmXFaKqrxVCZjqdnArXz31OOWDGMRi 9ul4oopTbzTiQovT/yf7VTnr1Cpi9bH8GRhCAkFzKs49aHAhX5saJ1irZJHkA8V2hK9qKwWhWM2AA A4UBjN6QAHgKTDOoZD1FvjaqYhZhVs2iMvcp5WDjvBulQO2QFDV7/pevHz1nCUYA6OIY8J7fiJnmD M0MVLv1xgnn83Mxi39bH+gYXrRIcUTlCiqREEuliNGccXiI2eZDaPDsDZgEX8uX/1l5tC3gFbUYCn ZhL0M5GQA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2xdk-0000pb-8T; Fri, 22 Jan 2021 14:42:20 +0000 Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2xdg-0000o0-7m for linux-arm-kernel@lists.infradead.org; Fri, 22 Jan 2021 14:42:17 +0000 Received: by mail-pf1-x434.google.com with SMTP id o20so3845414pfu.0 for ; Fri, 22 Jan 2021 06:42:15 -0800 (PST) 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=TDW0uo0U4I8F8s+gzPDSjcYPS9epJOiCg4X2p7A7eF4=; b=VswbVDlWLOpcZ32hSYINsQeKvp4aICDDhmjx2WDwPSsC+blSNkZAGtgq+vsZVIcRjR AT0gO2Nf2f2mb3VLFeyxAFfOWEf2pGrlB3EuiEKQtixdGpsxCOlmGORV0eGsHc+StOWO WUgguwnb8qkDiugN5ZeJQfle1EVaYhlC4aNL5DiTRW1AqdxUxPXGMz3JynLlW9oCY7xH 3sqiXHU+J5u0LdbbrW75Gxh/CQsLqdMhyBfrCDnJESrC/hRY0I3Pi99t85hbNg+elmiL Go22xae3WIqWMXSlhU6HdD/uBxLCTXGNda6Wmz0+7xH/wo9CWY06v7OEj/uPQbmtXAiT L1CQ== 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=TDW0uo0U4I8F8s+gzPDSjcYPS9epJOiCg4X2p7A7eF4=; b=hEEjE6Gurz3uq/DhVSI6XewV1J4a+KCLFUmOFMB0GCbCWUa7oC9vBwU3EPhIehGGt4 DiwWhghzL1CzpUZbW0y/mURfkR16ZBQ+J53sahjoOed/zFgBpwF1VCklWikEg+i1Fs// eD9tNVQ3iPkvn2A9sOOXigS2rXXBFhd3QqRAD2HGNlw+EMax6hHrqvj6pycAtFCE2Py0 ZybS5b8XambKWPfdMVWhiKbPJZ8TtBUyM4mhNV0WdCIZm/nYr/U9EaCbLjvMb8uojg3K vnhXRzq8mFidPYTuSH2uQrgJU+w7qCsXGJHdgr0iJ9VcLzaYe6gZrll6BXC9HRwB5nLZ amQw== X-Gm-Message-State: AOAM532ltBQRuX7IZVeCWwTfOPMzvTUhjifOkNYfbA73t5ws1HuDJo3S MEcvTzBU+dRkCXdoJi+A/4v8TYx0ooW4b3po4OJwV2xzE0g5BQ== X-Google-Smtp-Source: ABdhPJy7eF4qouYDgxFSogoAOjI/HoTypMGg98Lxr/e9DPp0q6sNb04A342nzyC3elmXD5aj1J3p6AnGZ88Yvqi9eNM= X-Received: by 2002:a63:4644:: with SMTP id v4mr4977707pgk.440.1611326533664; Fri, 22 Jan 2021 06:42:13 -0800 (PST) MIME-Version: 1.0 References: <20210122141125.36166-1-vincenzo.frascino@arm.com> <20210122141125.36166-4-vincenzo.frascino@arm.com> In-Reply-To: <20210122141125.36166-4-vincenzo.frascino@arm.com> From: Andrey Konovalov Date: Fri, 22 Jan 2021 15:42:02 +0100 Message-ID: Subject: Re: [PATCH v7 3/4] kasan: Add report for async mode To: Vincenzo Frascino X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210122_094216_319810_612662DF X-CRM114-Status: GOOD ( 19.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Branislav Rankov , Marco Elver , Catalin Marinas , Evgenii Stepanov , LKML , kasan-dev , Alexander Potapenko , Linux ARM , Andrey Ryabinin , Will Deacon , Dmitry Vyukov Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Jan 22, 2021 at 3:11 PM Vincenzo Frascino wrote: > > KASAN provides an asynchronous mode of execution. > > Add reporting functionality for this mode. > > Cc: Dmitry Vyukov > Cc: Andrey Ryabinin > Cc: Alexander Potapenko > Cc: Andrey Konovalov > Reviewed-by: Andrey Konovalov > Signed-off-by: Vincenzo Frascino > --- > include/linux/kasan.h | 2 ++ > mm/kasan/report.c | 13 +++++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > index bb862d1f0e15..b0a1d9dfa85c 100644 > --- a/include/linux/kasan.h > +++ b/include/linux/kasan.h > @@ -351,6 +351,8 @@ static inline void *kasan_reset_tag(const void *addr) > bool kasan_report(unsigned long addr, size_t size, > bool is_write, unsigned long ip); > > +void kasan_report_async(void); > + > #else /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ > > static inline void *kasan_reset_tag(const void *addr) > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > index 234f35a84f19..1390da06a988 100644 > --- a/mm/kasan/report.c > +++ b/mm/kasan/report.c > @@ -358,6 +358,19 @@ void kasan_report_invalid_free(void *object, unsigned long ip) > end_report(&flags); > } > > +#if defined(CONFIG_KASAN_SW_TAGS) || defined(CONFIG_KASAN_HW_TAGS) This looks wrong, CONFIG_KASAN_SW_TAGS doesn't use MTE, so this function isn't needed for that mode. Let's add an #ifdef CONFIG_KASAN_HW_TAGS section in include/linux/kasan.h after the HW/SW one with kasan_report(). And only leave CONFIG_KASAN_HW_TAGS in mm/kasan/report.c too. > +void kasan_report_async(void) > +{ > + unsigned long flags; > + > + start_report(&flags); > + pr_err("BUG: KASAN: invalid-access\n"); > + pr_err("Asynchronous mode enabled: no access details available\n"); > + dump_stack(); > + end_report(&flags); > +} > +#endif /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ > + > static void __kasan_report(unsigned long addr, size_t size, bool is_write, > unsigned long ip) > { > -- > 2.30.0 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel