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=-18.9 required=3.0 tests=BAYES_00,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, URIBL_BLOCKED,USER_AGENT_SANE_1,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 00DF0C4727E for ; Thu, 1 Oct 2020 17:29:11 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 871FE2085B for ; Thu, 1 Oct 2020 17:29:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="I+gsOCjj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 871FE2085B 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 2AA5090000B; Thu, 1 Oct 2020 13:29:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 25925900003; Thu, 1 Oct 2020 13:29:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1218890000B; Thu, 1 Oct 2020 13:29:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0081.hostedemail.com [216.40.44.81]) by kanga.kvack.org (Postfix) with ESMTP id D693F900003 for ; Thu, 1 Oct 2020 13:29:09 -0400 (EDT) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 614F3181AE863 for ; Thu, 1 Oct 2020 17:29:09 +0000 (UTC) X-FDA: 77324042418.11.nose56_31110342719d Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin11.hostedemail.com (Postfix) with ESMTP id 3C30E180F8B81 for ; Thu, 1 Oct 2020 17:29:09 +0000 (UTC) X-HE-Tag: nose56_31110342719d X-Filterd-Recvd-Size: 7287 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Thu, 1 Oct 2020 17:29:08 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id 13so245980wmf.0 for ; Thu, 01 Oct 2020 10:29:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=iPaQCzihnyHNLy47NnUWbDr7GfchzwJLlA5r6ihLSYU=; b=I+gsOCjjdOcdrl0S25+QXcQmEOn5eVa7r50sBTVtz/w3lhgLaELA5MI6CfjmSQdhwi 1+3Za2o2Q+HqdOLiRJ7MjQdLjQHkvUKSzQ+SPBYoONmZRBb1yzPdMIBLOE1HEE5fnLAA BQ8w08laAbz2fQVHMkoQ2oHk+WRiJSiy/g4/cycNeYIpfEq710BsL7OqSnhUtvri5mey kAPsYkq9nmGztS9NNvbO00ngqrQ0vK3QRNtX73q53Rk6fhsRl+ILTHwElJaTko7GuqXh Ss/aOCe77SpYX7k06JceIbLr174mxwekNf4+lbo13Id52IiC75tWRIb7TSu28rMy651R eGpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=iPaQCzihnyHNLy47NnUWbDr7GfchzwJLlA5r6ihLSYU=; b=Ww2tFd6YNIiCyAd8KxbnQ64H/XzM4WssFt3uYsweumaUrrTz6p7+5gouhJma2OK6HM SSGE7Y0+lP/CxaYkiC/fDYQWV4z4vtzn9l3zBPdCnQbRVqIfQ2TIRRZWVYb0016WpukK N5M3Rp6zl31WBiuDzq9wPJTuq9vXM4twSAGqG5QL64qp5ENLFHxKL/JFAHSwuxTBZc4C W3dkwtuHvGqD7nYvz5q5TQSCWTj1+vJTXu2IkAGBLjShQoxtgB+fkAqiBUC7hIXZA7/y JUYwt/1l65c2yPDaBWWbFtMMKkBI0/i+9zzh3lOPGzWgCQaNoZQZpEraSVuuRKrbicgU RHCg== X-Gm-Message-State: AOAM531RjKwgyGO05xp0843bv6ABMn0pw8save94hzmR0W2hI98P3f86 i3QSdb19KXwqsWEOvTaJVoOdLg== X-Google-Smtp-Source: ABdhPJzo235AsBkhXVYPH8dEYiNl0ar42N9voU6aVuWN/1aMLTuHt2yyhF3ju/2L0zAOuQgVIdxysg== X-Received: by 2002:a1c:4c0d:: with SMTP id z13mr1011876wmf.113.1601573347642; Thu, 01 Oct 2020 10:29:07 -0700 (PDT) Received: from elver.google.com ([100.105.32.75]) by smtp.gmail.com with ESMTPSA id m3sm9926381wrs.83.2020.10.01.10.29.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Oct 2020 10:29:06 -0700 (PDT) Date: Thu, 1 Oct 2020 19:29:01 +0200 From: elver@google.com To: Andrey Konovalov Cc: Dmitry Vyukov , Vincenzo Frascino , Catalin Marinas , kasan-dev@googlegroups.com, Andrey Ryabinin , Alexander Potapenko , Evgenii Stepanov , Elena Petrova , Branislav Rankov , Kevin Brodsky , Will Deacon , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 04/39] kasan: shadow declarations only for software modes Message-ID: <20201001172901.GB4162920@elver.google.com> References: <9de4c3b360444c66fcf454e0880fc655c5d80395.1600987622.git.andreyknvl@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9de4c3b360444c66fcf454e0880fc655c5d80395.1600987622.git.andreyknvl@google.com> User-Agent: Mutt/1.14.5 (2020-06-23) 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: On Fri, Sep 25, 2020 at 12:50AM +0200, Andrey Konovalov wrote: > This is a preparatory commit for the upcoming addition of a new hardware > tag-based (MTE-based) KASAN mode. > > Group shadow-related KASAN function declarations and only define them > for the two existing software modes. > > No functional changes for software modes. > > Signed-off-by: Andrey Konovalov > Signed-off-by: Vincenzo Frascino Reviewed-by: Marco Elver > --- > Change-Id: I864be75a88b91b443c55e9c2042865e15703e164 > --- > include/linux/kasan.h | 44 ++++++++++++++++++++++++++----------------- > 1 file changed, 27 insertions(+), 17 deletions(-) > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > index bd5b4965a269..44a9aae44138 100644 > --- a/include/linux/kasan.h > +++ b/include/linux/kasan.h > @@ -3,16 +3,24 @@ > #define _LINUX_KASAN_H > > #include > +#include > > struct kmem_cache; > struct page; > struct vm_struct; > struct task_struct; > > -#ifdef CONFIG_KASAN > +#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) > > #include > -#include > + > +/* Software KASAN implementations use shadow memory. */ > + > +#ifdef CONFIG_KASAN_SW_TAGS > +#define KASAN_SHADOW_INIT 0xFF > +#else > +#define KASAN_SHADOW_INIT 0 > +#endif > > extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; > extern pte_t kasan_early_shadow_pte[PTRS_PER_PTE]; > @@ -29,6 +37,23 @@ static inline void *kasan_mem_to_shadow(const void *addr) > + KASAN_SHADOW_OFFSET; > } > > +int kasan_add_zero_shadow(void *start, unsigned long size); > +void kasan_remove_zero_shadow(void *start, unsigned long size); > + > +#else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */ > + > +static inline int kasan_add_zero_shadow(void *start, unsigned long size) > +{ > + return 0; > +} > +static inline void kasan_remove_zero_shadow(void *start, > + unsigned long size) > +{} > + > +#endif /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */ > + > +#ifdef CONFIG_KASAN > + > /* Enable reporting bugs after kasan_disable_current() */ > extern void kasan_enable_current(void); > > @@ -69,9 +94,6 @@ struct kasan_cache { > int free_meta_offset; > }; > > -int kasan_add_zero_shadow(void *start, unsigned long size); > -void kasan_remove_zero_shadow(void *start, unsigned long size); > - > size_t __ksize(const void *); > static inline void kasan_unpoison_slab(const void *ptr) > { > @@ -137,14 +159,6 @@ static inline bool kasan_slab_free(struct kmem_cache *s, void *object, > return false; > } > > -static inline int kasan_add_zero_shadow(void *start, unsigned long size) > -{ > - return 0; > -} > -static inline void kasan_remove_zero_shadow(void *start, > - unsigned long size) > -{} > - > static inline void kasan_unpoison_slab(const void *ptr) { } > static inline size_t kasan_metadata_size(struct kmem_cache *cache) { return 0; } > > @@ -152,8 +166,6 @@ static inline size_t kasan_metadata_size(struct kmem_cache *cache) { return 0; } > > #ifdef CONFIG_KASAN_GENERIC > > -#define KASAN_SHADOW_INIT 0 > - > void kasan_cache_shrink(struct kmem_cache *cache); > void kasan_cache_shutdown(struct kmem_cache *cache); > void kasan_record_aux_stack(void *ptr); > @@ -168,8 +180,6 @@ static inline void kasan_record_aux_stack(void *ptr) {} > > #ifdef CONFIG_KASAN_SW_TAGS > > -#define KASAN_SHADOW_INIT 0xFF > - > void kasan_init_tags(void); > > void *kasan_reset_tag(const void *addr); > -- > 2.28.0.681.g6f77f65b4e-goog >