2020-09-27 09:28:29

by Pujin Shi

[permalink] [raw]
Subject: [PATCH] MIPS: mm: Fix build error

arch/mips/mm/init.c: In function 'mem_init':
././include/linux/compiler_types.h:319:38: error: call to '__compiletime_assert_321' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT)
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
././include/linux/compiler_types.h:300:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^
././include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
./include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^
arch/mips/mm/init.c:458:2: note: in expansion of macro 'BUILD_BUG_ON'
BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
^

Signed-off-by: Pujin Shi <[email protected]>
---
arch/mips/mm/init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 6c7bbfe35ba3..71dfdf1cb88a 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -455,7 +455,7 @@ void __init mem_init(void)
* When _PFN_SHIFT is greater than PAGE_SHIFT we won't have enough PTE
* bits to hold a full 32b physical address on MIPS32 systems.
*/
- BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
+ WARN_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));

#ifdef CONFIG_HIGHMEM
#ifdef CONFIG_DISCONTIGMEM
--
2.18.1


2020-09-27 20:56:33

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH] MIPS: mm: Fix build error

On Sun, Sep 27, 2020 at 05:26:10PM +0800, Pujin Shi wrote:
> arch/mips/mm/init.c: In function 'mem_init':
> ././include/linux/compiler_types.h:319:38: error: call to '__compiletime_assert_321' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT)
> _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)

this is exactly what we want, so there is nothing to fix in this spot.
The only real fix is change page table format for 32bit to get more
PTE bits...

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]