From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-f198.google.com (mail-io0-f198.google.com [209.85.223.198]) by kanga.kvack.org (Postfix) with ESMTP id AFF156B0006 for ; Fri, 25 May 2018 08:44:31 -0400 (EDT) Received: by mail-io0-f198.google.com with SMTP id q24-v6so4278929iob.0 for ; Fri, 25 May 2018 05:44:31 -0700 (PDT) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id x73-v6sor3438547ite.134.2018.05.25.05.44.30 for (Google Transport Security); Fri, 25 May 2018 05:44:30 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <0043ffdf-4a75-d41c-966e-073eac3dc557@virtuozzo.com> References: <52d2542323262ede3510754bb07cbc1ed8c347b0.1525798754.git.andreyknvl@google.com> <0043ffdf-4a75-d41c-966e-073eac3dc557@virtuozzo.com> From: Andrey Konovalov Date: Fri, 25 May 2018 14:44:28 +0200 Message-ID: Subject: Re: [PATCH v1 15/16] khwasan, mm, arm64: tag non slab memory allocated via pagealloc Content-Type: text/plain; charset="UTF-8" Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Ryabinin Cc: Alexander Potapenko , Dmitry Vyukov , Jonathan Corbet , Catalin Marinas , Will Deacon , Christopher Li , Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton , Masahiro Yamada , Michal Marek , Mark Rutland , Nick Desaulniers , Yury Norov , Marc Zyngier , Kristina Martsenko , Suzuki K Poulose , Punit Agrawal , Dave Martin , Ard Biesheuvel , James Morse , Michael Weiser , Julien Thierry , Tyler Baicar , "Eric W . Biederman" , Thomas Gleixner , Ingo Molnar , Kees Cook , Sandipan Das , David Woodhouse , Paul Lawrence , Herbert Xu , Josh Poimboeuf , Geert Uytterhoeven , Tom Lendacky , Arnd Bergmann , Dan Williams , Michal Hocko , Jan Kara , Ross Zwisler , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Matthew Wilcox , "Kirill A . Shutemov" , Souptick Joarder , Hugh Dickins , Davidlohr Bueso , Greg Kroah-Hartman , Philippe Ombredanne , Kate Stewart , Laura Abbott , Boris Brezillon , Vlastimil Babka , Pintu Agarwal , Doug Berger , Anshuman Khandual , Mike Rapoport , Mel Gorman , Pavel Tatashin , Tetsuo Handa , kasan-dev , linux-doc@vger.kernel.org, LKML , Linux ARM , linux-sparse@vger.kernel.org, Linux Memory Management List , Linux Kbuild mailing list , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Kees Cook , Jann Horn , Mark Brand , Chintan Pandya On Tue, May 15, 2018 at 4:06 PM, Andrey Ryabinin wrote: > > You could avoid 'if (!PageSlab())' check by adding page_kasan_tag_reset() into kasan_poison_slab(). >> @@ -526,6 +526,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, >> } >> >> trace_cma_alloc(pfn, page, count, align); >> + page_kasan_tag_reset(page); > > > Why? Comment needed. > diff --git a/mm/kasan/common.c b/mm/kasan/common.c > index b8e0a8215021..f9f2181164a2 100644 > --- a/mm/kasan/common.c > +++ b/mm/kasan/common.c > @@ -207,18 +207,11 @@ void kasan_unpoison_stack_above_sp_to(const void *watermark) > > void kasan_alloc_pages(struct page *page, unsigned int order) > { > -#ifdef CONFIG_KASAN_GENERIC > - if (likely(!PageHighMem(page))) > - kasan_unpoison_shadow(page_address(page), PAGE_SIZE << order); > -#else > - if (!PageSlab(page)) { > - u8 tag = random_tag(); > + if (unlikely(PageHighMem(page))) > + return; > > - kasan_poison_shadow(page_address(page), PAGE_SIZE << order, > - tag); > - page_kasan_tag_set(page, tag); > - } > -#endif > + page_kasan_tag_set(page, random_tag()); > + kasan_unpoison_shadow(page_address(page), PAGE_SIZE << order); > } > > void kasan_free_pages(struct page *page, unsigned int order) > As already said before no changes needed in kasan_kmalloc_large. kasan_alloc_pages() alredy did tag_set(). Will fix all in v2, thanks!