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=-16.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 95DF8C433E0 for ; Sat, 9 Jan 2021 08:51:35 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1D0612231F for ; Sat, 9 Jan 2021 08:51:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D0612231F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0E7FB8D0005; Sat, 9 Jan 2021 03:51:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 070748D0003; Sat, 9 Jan 2021 03:51:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA0FA8D0005; Sat, 9 Jan 2021 03:51:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0160.hostedemail.com [216.40.44.160]) by kanga.kvack.org (Postfix) with ESMTP id D22778D0003 for ; Sat, 9 Jan 2021 03:51:33 -0500 (EST) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 8D0FD180AD807 for ; Sat, 9 Jan 2021 08:51:33 +0000 (UTC) X-FDA: 77685618066.21.oven42_1a0ccb3274fa Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin21.hostedemail.com (Postfix) with ESMTP id 74D04180442C2 for ; Sat, 9 Jan 2021 08:51:33 +0000 (UTC) X-HE-Tag: oven42_1a0ccb3274fa X-Filterd-Recvd-Size: 5117 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf24.hostedemail.com (Postfix) with ESMTP for ; Sat, 9 Jan 2021 08:51:32 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id B15AA239E5 for ; Sat, 9 Jan 2021 08:51:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1610182291; bh=+3p0GPX6m/SLC0USc3LVqoMdRz5ohyAvww3paZyNaM0=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=N1uENVcJBphns04y0r8iPHenMcGCSGxN2k9fADy/mm3VqP8INDmAREFj+5sYmrfAq evzpFEIWjHaKH4RR1hVnGZhPV7dG+/TQK8tmyO6fbOZ0q6Ha6lbLQ96ydVytqBEn66 A5zR1ci/un4TA3wtveJKa5E9ZDyLc+GxatDOZOLa1bcWDqlATocxQmeN+YTkMlETo7 478tpyUrA6qptgMy5LT0kM4ZDPwI5PGHOTFnO13iGWLU5iVxEQDVD8hqfjhqtjw/R1 WX/ENSU4DVz3+R4YA5QrxiJ+9A85LaTIbxrBQa0IB3wjBRo5ZThA153NMenRPJUaR7 LcLyTCJhsnSXg== Received: by mail-oi1-f181.google.com with SMTP id d203so14366662oia.0 for ; Sat, 09 Jan 2021 00:51:31 -0800 (PST) X-Gm-Message-State: AOAM531z94+pbqmCAKEALrR0O+nGntNa0ctLqGmMc/2rMKGzMEfG3DCR WdE0eLq4xMd//N5sMwB29wFB622KTcKOFE6uZws= X-Google-Smtp-Source: ABdhPJwdkMDJT75A5HtUk8+o57IPNQdLOmxnTI2NqZqtc0lMYbJUnqGk/J1ATi5vQU3dRL4svI+kve/p6ewZbGRtIPY= X-Received: by 2002:aca:210f:: with SMTP id 15mr4645635oiz.174.1610182290984; Sat, 09 Jan 2021 00:51:30 -0800 (PST) MIME-Version: 1.0 References: <20210109044622.8312-1-hailongliiu@yeah.net> In-Reply-To: <20210109044622.8312-1-hailongliiu@yeah.net> From: Ard Biesheuvel Date: Sat, 9 Jan 2021 09:51:19 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] arm/kasan:fix the arry size of kasan_early_shadow_pte To: Hailong liu , Linus Walleij Cc: Andrey Ryabinin , Ziliang Guo , Hailong Liu , kasan-dev , Linux Kernel Mailing List , Linux Memory Management List , Alexander Potapenko , Dmitry Vyukov , Andrew Morton , Linux ARM , Russell King Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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: (+ Linus) On Sat, 9 Jan 2021 at 05:50, Hailong liu wrote: > > From: Hailong Liu > > The size of kasan_early_shadow_pte[] now is PTRS_PER_PTE which defined to > 512 for arm architecture. This means that it only covers the prev Linux p= te > entries, but not the HWTABLE pte entries for arm. > > The reason it works well current is that the symbol kasan_early_shadow_pa= ge > immediately following kasan_early_shadow_pte in memory is page aligned, > which makes kasan_early_shadow_pte look like a 4KB size array. But we can= 't > ensure the order always right with different compiler/linker, nor more bs= s > symbols be introduced. > > We had a test with QEMU + vexpress=EF=BC=9Aput a 512KB-size symbol with a= ttribute > __section(".bss..page_aligned") after kasan_early_shadow_pte, and poison = it > after kasan_early_init(). Then enabled CONFIG_KASAN, it failed to boot up= . > > Signed-off-by: Hailong Liu > Signed-off-by: Ziliang Guo > --- > include/linux/kasan.h | 6 +++++- > mm/kasan/init.c | 3 ++- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > index 5e0655fb2a6f..fe1ae73ff8b5 100644 > --- a/include/linux/kasan.h > +++ b/include/linux/kasan.h > @@ -35,8 +35,12 @@ struct kunit_kasan_expectation { > #define KASAN_SHADOW_INIT 0 > #endif > > +#ifndef PTE_HWTABLE_PTRS > +#define PTE_HWTABLE_PTRS 0 > +#endif > + > extern unsigned char kasan_early_shadow_page[PAGE_SIZE]; > -extern pte_t kasan_early_shadow_pte[PTRS_PER_PTE]; > +extern pte_t kasan_early_shadow_pte[PTRS_PER_PTE + PTE_HWTABLE_PTRS]; > extern pmd_t kasan_early_shadow_pmd[PTRS_PER_PMD]; > extern pud_t kasan_early_shadow_pud[PTRS_PER_PUD]; > extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D]; > diff --git a/mm/kasan/init.c b/mm/kasan/init.c > index bc0ad208b3a7..7ca0b92d5886 100644 > --- a/mm/kasan/init.c > +++ b/mm/kasan/init.c > @@ -64,7 +64,8 @@ static inline bool kasan_pmd_table(pud_t pud) > return false; > } > #endif > -pte_t kasan_early_shadow_pte[PTRS_PER_PTE] __page_aligned_bss; > +pte_t kasan_early_shadow_pte[PTRS_PER_PTE + PTE_HWTABLE_PTRS] > + __page_aligned_bss; > > static inline bool kasan_pte_table(pmd_t pmd) > { > -- > 2.17.1 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel