Subject: kernel BUG at kernel/kallsyms.c:222!

From: [email-masked] (Jonathan Austin)
Date: Mon, 11 Nov 2013 17:15:29 +0000

On 11/11/13 10:41, Ming Lei wrote:
> Hi,
> 
> On Mon, Nov 11, 2013 at 5:57 PM, Ming Lei <[email-masked]> wrote:
>> Hi,
>>
>> On Mon, Nov 11, 2013 at 4:37 PM, Axel Lin <[email-masked]> wrote:
>>> 2013/11/11 Ming Lei <[email-masked]>:
>>>
>>> Hi Ming,
>>>
>>> commit f6537f2f "scripts/kallsyms: filter symbols not in kernel address space",
>>> uses CONFIG_PAGE_OFFSET as kernel_start_addr.
>>> However, for !CONFIG_MMU case we have :
>>>      PAGE_OFFSET != CONFIG_PAGE_OFFSET.
>>
>> Yes, it is the cause, and strictly speaking, commit f6537f2f is wrong,
>> but triggered with bogus CONFIG_PAGE_OFFSET if !CONFIG_MMU.
>>
>> We can fix it either by Rusty's patch or removing the bogus
>> CONFIG_PAGE_OFFSET for !CONFIG_MMU.
> 
> Rusty, maybe we need revert commit f6537f2f "scripts/kallsyms: filter
> symbols not in kernel address space", since CONFIG_PAGE_OFFSET
> may be bogus on !MMU or not defined on ARCHs(most of 64bit arch,
> no regression report because scripts/kallsyms may get zero
> kernel_start_addr)
> 

For me on Cortex-R7 (nommu) f6537f2f breaks boot (Oops very early on...)
and reverting it fixes the problem... However, as you note, we have a
'bogus' CONFIG_PAGE_OFFSET (0xC0000000) for !MMU so another approach would
be to fix that...

I've tested the patch below and it solves the ARM side of things - so
gives you an option other than a complete revert. Happy to put this in to
RMK's patch system if you'd prefer not to have to revert and he's happy
with the patch.

Jonny

-------->8-----------

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d601be3..6756651 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1609,6 +1609,7 @@ endchoice
 
 config PAGE_OFFSET
        hex
+       default PHYS_OFFSET if !MMU
        default 0x40000000 if VMSPLIT_1G
        default 0x80000000 if VMSPLIT_2G
        default 0xC0000000