2020-08-12 17:31:38

by kernel test robot

[permalink] [raw]
Subject: arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: fb893de323e2d39f7a1f6df425703a2edbdf56ea
commit: d9e8b929670b4f79e07cdbcb0fb4f162a561d5c6 asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()
date: 5 days ago
config: mips-randconfig-p001-20200812 (attached as .config)
compiler: mips64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout d9e8b929670b4f79e07cdbcb0fb4f162a561d5c6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

In file included from arch/mips/mm/init.c:43:
>> arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'
81 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
| ^~~~~~~~~~~~~
In file included from arch/mips/include/asm/pgalloc.h:18,
from arch/mips/mm/init.c:43:
include/asm-generic/pgalloc.h:160:22: note: previous definition of 'pud_alloc_one' was here
160 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
| ^~~~~~~~~~~~~
arch/mips/mm/init.c:61:6: warning: no previous prototype for 'setup_zero_pages' [-Wmissing-prototypes]
61 | void setup_zero_pages(void)
| ^~~~~~~~~~~~~~~~
--
In file included from arch/mips/mm/pgtable.c:9:
>> arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'
81 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
| ^~~~~~~~~~~~~
In file included from arch/mips/include/asm/pgalloc.h:18,
from arch/mips/mm/pgtable.c:9:
include/asm-generic/pgalloc.h:160:22: note: previous definition of 'pud_alloc_one' was here
160 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
| ^~~~~~~~~~~~~
--
In file included from arch/mips/mm/pgtable-64.c:13:
>> arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'
81 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
| ^~~~~~~~~~~~~
In file included from arch/mips/include/asm/pgalloc.h:18,
from arch/mips/mm/pgtable-64.c:13:
include/asm-generic/pgalloc.h:160:22: note: previous definition of 'pud_alloc_one' was here
160 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
| ^~~~~~~~~~~~~
arch/mips/mm/pgtable-64.c:90:7: warning: no previous prototype for 'mk_pmd' [-Wmissing-prototypes]
90 | pmd_t mk_pmd(struct page *page, pgprot_t prot)
| ^~~~~~
arch/mips/mm/pgtable-64.c:99:6: warning: no previous prototype for 'set_pmd_at' [-Wmissing-prototypes]
99 | void set_pmd_at(struct mm_struct *mm, unsigned long addr,
| ^~~~~~~~~~

vim +/pud_alloc_one +81 arch/mips/include/asm/pgalloc.h

3377e227af441a Alex Belits 2017-02-16 80
3377e227af441a Alex Belits 2017-02-16 @81 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
3377e227af441a Alex Belits 2017-02-16 82 {
3377e227af441a Alex Belits 2017-02-16 83 pud_t *pud;
3377e227af441a Alex Belits 2017-02-16 84
473738eb78c3e3 Michal Hocko 2017-07-12 85 pud = (pud_t *) __get_free_pages(GFP_KERNEL, PUD_ORDER);
3377e227af441a Alex Belits 2017-02-16 86 if (pud)
3377e227af441a Alex Belits 2017-02-16 87 pud_init((unsigned long)pud, (unsigned long)invalid_pmd_table);
3377e227af441a Alex Belits 2017-02-16 88 return pud;
3377e227af441a Alex Belits 2017-02-16 89 }
3377e227af441a Alex Belits 2017-02-16 90

:::::: The code at line 81 was first introduced by commit
:::::: 3377e227af441aff710726437adc20efc359fd9c MIPS: Add 48-bit VA space (and 4-level page tables) for 4K pages.

:::::: TO: Alex Belits <[email protected]>
:::::: CC: Ralf Baechle <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (4.44 kB)
.config.gz (24.90 kB)
Download all attachments

2020-08-12 19:15:50

by Mike Rapoport

[permalink] [raw]
Subject: Re: arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'

On Thu, Aug 13, 2020 at 01:28:17AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: fb893de323e2d39f7a1f6df425703a2edbdf56ea
> commit: d9e8b929670b4f79e07cdbcb0fb4f162a561d5c6 asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()
> date: 5 days ago
> config: mips-randconfig-p001-20200812 (attached as .config)
> compiler: mips64-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout d9e8b929670b4f79e07cdbcb0fb4f162a561d5c6
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/mips/mm/init.c:43:
> >> arch/mips/include/asm/pgalloc.h:81:22: error: redefinition of 'pud_alloc_one'
> 81 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address)
> | ^~~~~~~~~~~~~
> In file included from arch/mips/include/asm/pgalloc.h:18,
> from arch/mips/mm/init.c:43:
> include/asm-generic/pgalloc.h:160:22: note: previous definition of 'pud_alloc_one' was here
> 160 | static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
> | ^~~~~~~~~~~~~
> arch/mips/mm/init.c:61:6: warning: no previous prototype for 'setup_zero_pages' [-Wmissing-prototypes]
> 61 | void setup_zero_pages(void)
> | ^~~~~~~~~~~~~~~~

From 03ab41f5c9f12733be3581333b512d99b0f75cac Mon Sep 17 00:00:00 2001
From: Mike Rapoport <[email protected]>
Date: Wed, 12 Aug 2020 22:06:49 +0300
Subject: [PATCH] asm-generic: pgalloc.h: use correct #ifdef to enable pud_alloc_one()

The #ifdef statement that guards the generic version of pud_alloc_one() by
mistake used __HAVE_ARCH_PUD_FREE instead of __HAVE_ARCH_PUD_ALLOC_ONE.

Fix it.

Fixes: d9e8b929670b ("asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()")
Reported-by: kernel test robot <[email protected]>
Signed-off-by: Mike Rapoport <[email protected]>
---
include/asm-generic/pgalloc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/asm-generic/pgalloc.h b/include/asm-generic/pgalloc.h
index 6f44810921aa..02932efad3ab 100644
--- a/include/asm-generic/pgalloc.h
+++ b/include/asm-generic/pgalloc.h
@@ -147,7 +147,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)

#if CONFIG_PGTABLE_LEVELS > 3

-#ifndef __HAVE_ARCH_PUD_FREE
+#ifndef __HAVE_ARCH_PUD_ALLOC_ONE
/**
* pud_alloc_one - allocate a page for PUD-level page table
* @mm: the mm_struct of the current context
--
2.26.2