lkml.org 
[lkml]   [2021]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] mm: page-flags: fix build failure due to missing parameter for HasHWPoisoned flag
    Date
    The below build failure when !CONFIG_MEMORY_FAILURE was reported for
    v5.16 merge window:
    In file included from include/linux/mmzone.h:22,
    from include/linux/gfp.h:6,
    from include/linux/slab.h:15,
    from include/linux/crypto.h:20,
    from arch/x86/kernel/asm-offsets.c:9:
    include/linux/page-flags.h:806:29: error: macro "PAGEFLAG_FALSE"
    requires 2 arguments, but only 1 given
    806 | PAGEFLAG_FALSE(HasHWPoisoned)
    | ^
    include/linux/page-flags.h:411: note: macro "PAGEFLAG_FALSE" defined here
    411 | #define PAGEFLAG_FALSE(uname, lname) TESTPAGEFLAG_FALSE(uname, lname) \
    |
    include/linux/page-flags.h:807:39: error: macro "TESTSCFLAG_FALSE"
    requires 2 arguments, but only 1 given
    807 | TESTSCFLAG_FALSE(HasHWPoisoned)
    | ^
    include/linux/page-flags.h:414: note: macro "TESTSCFLAG_FALSE" defined here
    414 | #define TESTSCFLAG_FALSE(uname, lname)
    \
    |
    include/linux/page-flags.h:806:1: error: unknown type name 'PAGEFLAG_FALSE'
    806 | PAGEFLAG_FALSE(HasHWPoisoned)
    | ^~~~~~~~~~~~~~
    include/linux/page-flags.h:807:25: error: expected ';' before 'static'
    807 | TESTSCFLAG_FALSE(HasHWPoisoned)
    | ^
    | ;
    ......
    815 | static inline bool is_page_hwpoison(struct page *page)
    | ~~~~~~
    make[2]: *** [scripts/Makefile.build:121: arch/x86/kernel/asm-offsets.s] Error 1

    The commit d389a4a81155 ("mm: Add folio flag manipulation functions")
    changed the definition of PAGEFLAG macros, this caused the build failure
    for HasHWPoisoned flag. The new flag was introduced by commit
    eac96c3efdb5 ("mm: filemap: check if THP has hwpoisoned subpage for PMD
    page fault") in v5.15-rc7. But the folio series pull request was
    prepared before v5.15, so this new flag was missed.

    Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
    Signed-off-by: Yang Shi <shy828301@gmail.com>
    ---
    include/linux/page-flags.h | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
    index d8623d6e1141..981341a3c3c4 100644
    --- a/include/linux/page-flags.h
    +++ b/include/linux/page-flags.h
    @@ -803,8 +803,8 @@ PAGEFLAG_FALSE(DoubleMap, double_map)
    PAGEFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
    TESTSCFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
    #else
    -PAGEFLAG_FALSE(HasHWPoisoned)
    - TESTSCFLAG_FALSE(HasHWPoisoned)
    +PAGEFLAG_FALSE(HasHWPoisoned, has_hwpoisoned)
    + TESTSCFLAG_FALSE(HasHWPoisoned, has_hwpoisoned)
    #endif

    /*
    --
    2.26.2
    \
     
     \ /
      Last update: 2021-11-01 20:44    [W:2.834 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site