lkml.org 
[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH mm v3 09/38] kasan, page_alloc: refactor init checks in post_alloc_hook
    Date
    From: Andrey Konovalov <andreyknvl@google.com>

    Separate code for zeroing memory from the code clearing tags in
    post_alloc_hook().

    This patch is not useful by itself but makes the simplifications in
    the following patches easier to follow.

    This patch does no functional changes.

    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>

    ---

    Changes v2->v3:
    - Update patch description.
    ---
    mm/page_alloc.c | 18 ++++++++++--------
    1 file changed, 10 insertions(+), 8 deletions(-)

    diff --git a/mm/page_alloc.c b/mm/page_alloc.c
    index 73280222e0e8..9ecdf2124ac1 100644
    --- a/mm/page_alloc.c
    +++ b/mm/page_alloc.c
    @@ -2419,19 +2419,21 @@ inline void post_alloc_hook(struct page *page, unsigned int order,
    kasan_alloc_pages(page, order, gfp_flags);
    } else {
    bool init = !want_init_on_free() && want_init_on_alloc(gfp_flags);
    + bool init_tags = init && (gfp_flags & __GFP_ZEROTAGS);

    kasan_unpoison_pages(page, order, init);

    - if (init) {
    - if (gfp_flags & __GFP_ZEROTAGS) {
    - int i;
    + if (init_tags) {
    + int i;

    - for (i = 0; i < 1 << order; i++)
    - tag_clear_highpage(page + i);
    - } else {
    - kernel_init_free_pages(page, 1 << order);
    - }
    + for (i = 0; i < 1 << order; i++)
    + tag_clear_highpage(page + i);
    +
    + init = false;
    }
    +
    + if (init)
    + kernel_init_free_pages(page, 1 << order);
    }

    set_page_owner(page, order, gfp_flags);
    --
    2.25.1
    \
     
     \ /
      Last update: 2021-12-13 22:53    [W:4.067 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site