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.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 D10F1C43462 for ; Thu, 13 May 2021 20:47:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4CF2B6143D for ; Thu, 13 May 2021 20:47:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4CF2B6143D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux-foundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 5B4BB6B0036; Thu, 13 May 2021 16:47:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53CBF6B006E; Thu, 13 May 2021 16:47:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B69A6B0070; Thu, 13 May 2021 16:47:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0160.hostedemail.com [216.40.44.160]) by kanga.kvack.org (Postfix) with ESMTP id 0794A6B0036 for ; Thu, 13 May 2021 16:47:56 -0400 (EDT) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 98703BBF3 for ; Thu, 13 May 2021 20:47:56 +0000 (UTC) X-FDA: 78137394552.19.3DE8FCE Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf02.hostedemail.com (Postfix) with ESMTP id 3DFF340002C1 for ; Thu, 13 May 2021 20:47:55 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id CC49A61287; Thu, 13 May 2021 20:47:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1620938875; bh=ph/D2ruaZJycXfWKMXtRhWDiuhNBEwRkB87bfJEc7wQ=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=yT0GSlqeFDTM/njo6gS0zUif6V5qdEVi1ci+b3bvuCtP5u2XB6cWVOaGaVYgDzrNX Ajln01PVePlCbU87w1oeQfjsEhRHGDhSS2F4nBpWt0JTKDv6Y6FFGXSb+TAruaI1FH ty2mA4dnAGWdBz1VpY+k7082g09XhS5b1PxpOpa8= Date: Thu, 13 May 2021 13:47:54 -0700 From: Andrew Morton To: Christophe Leroy Cc: Randy Dunlap , broonie@kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-next@vger.kernel.org, mhocko@suse.cz, mm-commits@vger.kernel.org, sfr@canb.auug.org.au Subject: Re: mmotm 2021-05-12-21-46 uploaded (arch/x86/mm/pgtable.c) Message-Id: <20210513134754.ab3f1a864b0156ef99248401@linux-foundation.org> In-Reply-To: <54055e72-34b8-d43d-2ad3-87e8c8fa547b@csgroup.eu> References: <20210513044710.MCXhM_NwC%akpm@linux-foundation.org> <151ddd7f-1d3e-a6f7-daab-e32f785426e1@infradead.org> <54055e72-34b8-d43d-2ad3-87e8c8fa547b@csgroup.eu> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=yT0GSlqe; spf=pass (imf02.hostedemail.com: domain of akpm@linux-foundation.org designates 198.145.29.99 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 3DFF340002C1 X-Stat-Signature: 5k8z7xnaai8royid9ckrfeyyfe5mody9 X-HE-Tag: 1620938875-338792 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: On Thu, 13 May 2021 19:09:23 +0200 Christophe Leroy wrote: >=20 >=20 > > on i386: > >=20 > > ../arch/x86/mm/pgtable.c:703:5: error: redefinition of =E2=80=98pud_s= et_huge=E2=80=99 > > int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot) > > ^~~~~~~~~~~~ > > In file included from ../include/linux/mm.h:33:0, > > from ../arch/x86/mm/pgtable.c:2: > > ../include/linux/pgtable.h:1387:19: note: previous definition of =E2=80= =98pud_set_huge=E2=80=99 was here > > static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot= _t prot) > > ^~~~~~~~~~~~ > > ../arch/x86/mm/pgtable.c:758:5: error: redefinition of =E2=80=98pud_c= lear_huge=E2=80=99 > > int pud_clear_huge(pud_t *pud) > > ^~~~~~~~~~~~~~ > > In file included from ../include/linux/mm.h:33:0, > > from ../arch/x86/mm/pgtable.c:2: > > ../include/linux/pgtable.h:1391:19: note: previous definition of =E2=80= =98pud_clear_huge=E2=80=99 was here > > static inline int pud_clear_huge(pud_t *pud) > > ^~~~~~~~~~~~~~ >=20 > Hum ... >=20 > Comes from my patch=20 > https://patchwork.ozlabs.org/project/linuxppc-dev/patch/5ac5976419350e8= e048d463a64cae449eb3ba4b0.1620795204.git.christophe.leroy@csgroup.eu/ >=20 > But, that happens only if x86 defines __PAGETABLE_PUD_FOLDED. And if PU= D is folded, then I can't=20 > understand my it has pud_set_huge() and pud_clear_huge() functions. Probably because someone messed something up ;) Let's try this. --- a/arch/x86/mm/pgtable.c~mm-pgtable-add-stubs-for-pmd-pub_set-clear_hu= ge-fix +++ a/arch/x86/mm/pgtable.c @@ -682,6 +682,7 @@ int p4d_clear_huge(p4d_t *p4d) } #endif =20 +#ifndef __PAGETABLE_PUD_FOLDED /** * pud_set_huge - setup kernel PUD mapping * @@ -721,6 +722,22 @@ int pud_set_huge(pud_t *pud, phys_addr_t } =20 /** + * pud_clear_huge - clear kernel PUD mapping when it is set + * + * Returns 1 on success and 0 on failure (no PUD map is found). + */ +int pud_clear_huge(pud_t *pud) +{ + if (pud_large(*pud)) { + pud_clear(pud); + return 1; + } + + return 0; +} +#endif + +/** * pmd_set_huge - setup kernel PMD mapping * * See text over pud_set_huge() above. @@ -751,21 +768,6 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t } =20 /** - * pud_clear_huge - clear kernel PUD mapping when it is set - * - * Returns 1 on success and 0 on failure (no PUD map is found). - */ -int pud_clear_huge(pud_t *pud) -{ - if (pud_large(*pud)) { - pud_clear(pud); - return 1; - } - - return 0; -} - -/** * pmd_clear_huge - clear kernel PMD mapping when it is set * * Returns 1 on success and 0 on failure (no PMD map is found). _