lkml.org 
[lkml]   [2021]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 13/31] kasan, page_alloc: simplify kasan_unpoison_pages call site
    Date
    From: Andrey Konovalov <andreyknvl@google.com>

    Simplify the checks around kasan_unpoison_pages() call in
    post_alloc_hook().

    The logical condition for calling this function is:

    - If a software KASAN mode is enabled, we need to mark shadow memory.
    - Otherwise, HW_TAGS KASAN is enabled, and it only makes sense to
    set tags if they haven't already been cleared by tag_clear_highpage(),
    which is indicated by init_tags.

    This patch concludes the simplifications for post_alloc_hook().

    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    ---
    mm/page_alloc.c | 17 ++++++++++-------
    1 file changed, 10 insertions(+), 7 deletions(-)

    diff --git a/mm/page_alloc.c b/mm/page_alloc.c
    index ba950889f5ea..4eb341351124 100644
    --- a/mm/page_alloc.c
    +++ b/mm/page_alloc.c
    @@ -2420,15 +2420,18 @@ inline void post_alloc_hook(struct page *page, unsigned int order,
    /* Note that memory is already initialized by the loop above. */
    init = false;
    }
    - if (kasan_has_integrated_init()) {
    - if (!init_tags) {
    - kasan_unpoison_pages(page, order, init);
    + /*
    + * If either a software KASAN mode is enabled, or,
    + * in the case of hardware tag-based KASAN,
    + * if memory tags have not been cleared via tag_clear_highpage().
    + */
    + if (!IS_ENABLED(CONFIG_KASAN_HW_TAGS) || !init_tags) {
    + /* Mark shadow memory or set memory tags. */
    + kasan_unpoison_pages(page, order, init);

    - /* Note that memory is already initialized by KASAN. */
    + /* Note that memory is already initialized by KASAN. */
    + if (kasan_has_integrated_init())
    init = false;
    - }
    - } else {
    - kasan_unpoison_pages(page, order, init);
    }
    /* If memory is still not initialized, do it now. */
    if (init)
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-11-30 23:06    [W:4.155 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site