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=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 14812C10F29 for ; Tue, 17 Mar 2020 08:43:32 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BF4DE205ED for ; Tue, 17 Mar 2020 08:43:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=c-s.fr header.i=@c-s.fr header.b="pv8MzjDt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BF4DE205ED Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=c-s.fr Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 5A2856B0005; Tue, 17 Mar 2020 04:43:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 52C5B6B0006; Tue, 17 Mar 2020 04:43:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 41D1D6B0007; Tue, 17 Mar 2020 04:43:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0207.hostedemail.com [216.40.44.207]) by kanga.kvack.org (Postfix) with ESMTP id 255EA6B0005 for ; Tue, 17 Mar 2020 04:43:31 -0400 (EDT) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id E66D18245571 for ; Tue, 17 Mar 2020 08:43:30 +0000 (UTC) X-FDA: 76604215380.29.dust24_58d58ae126c1e X-HE-Tag: dust24_58d58ae126c1e X-Filterd-Recvd-Size: 6115 Received: from pegase1.c-s.fr (pegase1.c-s.fr [93.17.236.30]) by imf50.hostedemail.com (Postfix) with ESMTP for ; Tue, 17 Mar 2020 08:43:30 +0000 (UTC) Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 48hRXH56xJz9tyF8; Tue, 17 Mar 2020 09:43:27 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=pv8MzjDt; dkim-adsp=pass; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id jJ7QbpjNsTiX; Tue, 17 Mar 2020 09:43:27 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 48hRXH435dz9tyF7; Tue, 17 Mar 2020 09:43:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1584434607; bh=1bMuDk15/zuaGXBlkTCqaPwZYzG0RpwgAfWjBHT6CaM=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=pv8MzjDtC/3V1DSFohSmacKIE/GQE1Ng5gTPItAOnv2k8QI1GSinRQSPAQdUSBfjF C8HFBnMWvhtFw5Z/ODEpXgnSIenQwHj0gwJaIYl6GjIHYcyvlX/hUNYhtbeKBLCLw5 sEHRv7DnuR90if+soeH1ODt0XhhP+unK3Ej1uqfc= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 761A18B786; Tue, 17 Mar 2020 09:43:28 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id sGIbwQtVgw9w; Tue, 17 Mar 2020 09:43:28 +0100 (CET) Received: from [192.168.4.90] (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id D4CC58B782; Tue, 17 Mar 2020 09:43:26 +0100 (CET) Subject: Re: [PATCH] mm/hugetlb: Fix build failure with HUGETLB_PAGE but not HUGEBTLBFS To: Baoquan He Cc: Mike Kravetz , Andrew Morton , Nishanth Aravamudan , Nick Piggin , Adam Litke , Andi Kleen , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org References: <7e8c3a3c9a587b9cd8a2f146df32a421b961f3a2.1584432148.git.christophe.leroy@c-s.fr> <20200317082550.GA3375@MiWiFi-R3L-srv> From: Christophe Leroy Message-ID: <60117fd7-46ff-326b-34f1-0c7087111ca7@c-s.fr> Date: Tue, 17 Mar 2020 09:43:20 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200317082550.GA3375@MiWiFi-R3L-srv> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr 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: Le 17/03/2020 =C3=A0 09:25, Baoquan He a =C3=A9crit=C2=A0: > On 03/17/20 at 08:04am, Christophe Leroy wrote: >> When CONFIG_HUGETLB_PAGE is set but not CONFIG_HUGETLBFS, the >> following build failure is encoutered: >=20 > From the definition of HUGETLB_PAGE, isn't it relying on HUGETLBFS? > I could misunderstand the def_bool, please correct me if I am wrong. AFAIU, it means that HUGETLBFS rely on HUGETLB_PAGE, by default=20 HUGETLB_PAGE is not selected when HUGETLBFS is not. But it is still=20 possible for an arch to select HUGETLB_PAGE without selecting HUGETLBFS=20 when it uses huge pages for other purpose than hugetlb file system. Christophe >=20 > config HUGETLB_PAGE > def_bool HUGETLBFS >=20 >> >> 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 functi= on 'HUGETLBFS_SB' [-Werror=3Dimplicit-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_PA= GE. >> >> Reported-by: kbuild test robot >> 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 >> --- >> 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); >> } >> =20 >> - >> +static inline struct hstate *hstate_inode(struct inode *i) >> +{ >> + return HUGETLBFS_SB(i->i_sb)->hstate; >> +} >> #else /* !CONFIG_HUGETLBFS */ >> =20 >> #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); >> } >> =20 >> +static inline struct hstate *hstate_inode(struct inode *i) >> +{ >> + return NULL; >> +} >> #endif /* !CONFIG_HUGETLBFS */ >> =20 >> #ifdef HAVE_ARCH_HUGETLB_UNMAPPED_AREA >> @@ -472,11 +479,6 @@ extern unsigned int default_hstate_idx; >> =20 >> #define default_hstate (hstates[default_hstate_idx]) >> =20 >> -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; >> } >> =20 >> -static inline struct hstate *hstate_inode(struct inode *i) >> -{ >> - return NULL; >> -} >> - >> static inline struct hstate *page_hstate(struct page *page) >> { >> return NULL; >> --=20 >> 2.25.0 >> >>