lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] mm/hugetlb: Fix build failure with HUGETLB_PAGE but not HUGEBTLBFS
    Date
    When CONFIG_HUGETLB_PAGE is set but not CONFIG_HUGETLBFS, the
    following build failure is encoutered:

    In file included from arch/powerpc/mm/fault.c:33:0:
    ./include/linux/hugetlb.h: In function 'hstate_inode':
    ./include/linux/hugetlb.h:477:9: error: implicit declaration of function 'HUGETLBFS_SB' [-Werror=implicit-function-declaration]
    return HUGETLBFS_SB(i->i_sb)->hstate;
    ^
    ./include/linux/hugetlb.h:477:30: error: invalid type argument of '->' (have 'int')
    return HUGETLBFS_SB(i->i_sb)->hstate;
    ^

    Gate hstate_inode() with CONFIG_HUGETLBFS instead of CONFIG_HUGETLB_PAGE.

    Reported-by: kbuild test robot <lkp@intel.com>
    Link: https://patchwork.ozlabs.org/patch/1255548/#2386036
    Fixes: a137e1cc6d6e ("hugetlbfs: per mount huge page sizes")
    Cc: stable@vger.kernel.org
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    ---
    include/linux/hugetlb.h | 19 ++++++++-----------
    1 file changed, 8 insertions(+), 11 deletions(-)

    diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
    index 1e897e4168ac..dafb3d70ff81 100644
    --- a/include/linux/hugetlb.h
    +++ b/include/linux/hugetlb.h
    @@ -390,7 +390,10 @@ static inline bool is_file_hugepages(struct file *file)
    return is_file_shm_hugepages(file);
    }

    -
    +static inline struct hstate *hstate_inode(struct inode *i)
    +{
    + return HUGETLBFS_SB(i->i_sb)->hstate;
    +}
    #else /* !CONFIG_HUGETLBFS */

    #define is_file_hugepages(file) false
    @@ -402,6 +405,10 @@ hugetlb_file_setup(const char *name, size_t size, vm_flags_t acctflag,
    return ERR_PTR(-ENOSYS);
    }

    +static inline struct hstate *hstate_inode(struct inode *i)
    +{
    + return NULL;
    +}
    #endif /* !CONFIG_HUGETLBFS */

    #ifdef HAVE_ARCH_HUGETLB_UNMAPPED_AREA
    @@ -472,11 +479,6 @@ extern unsigned int default_hstate_idx;

    #define default_hstate (hstates[default_hstate_idx])

    -static inline struct hstate *hstate_inode(struct inode *i)
    -{
    - return HUGETLBFS_SB(i->i_sb)->hstate;
    -}
    -
    static inline struct hstate *hstate_file(struct file *f)
    {
    return hstate_inode(file_inode(f));
    @@ -729,11 +731,6 @@ static inline struct hstate *hstate_vma(struct vm_area_struct *vma)
    return NULL;
    }

    -static inline struct hstate *hstate_inode(struct inode *i)
    -{
    - return NULL;
    -}
    -
    static inline struct hstate *page_hstate(struct page *page)
    {
    return NULL;
    --
    2.25.0
    \
     
     \ /
      Last update: 2020-03-17 09:04    [W:4.073 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site