microblaze: __init_begin symbol must be aligned
authorMichal Simek <monstr@monstr.eu>
Fri, 30 Oct 2009 13:41:52 +0000 (14:41 +0100)
committerMichal Simek <monstr@monstr.eu>
Mon, 14 Dec 2009 07:40:08 +0000 (08:40 +0100)
The problem was that free_initmem pass to  free_initrd_mem got
bad aligned __init_begin symbol and free_initrd_mem don't care
about __init_end but take PAGE_SIZE instead.

Here is behavior in kernel bootlog.
ramdisk_execute_command from (init/main.c) was rewrite

Freeing unused kernel memory: 6224k freed
Failed to execute ��������������{���
Failed to execute ��������������{����.  Attempting defaults...
Mounting proc:
Mounting var:

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/vmlinux.lds.S

index e704188d7855ec6115ddef659505ffba6b6d5578..ecee15342e666bb7a8e5a7f062155dfade148cb1 100644 (file)
@@ -86,6 +86,7 @@ SECTIONS {
                _KERNEL_SDA_BASE_ = _ssro + (_ssro_size / 2) ;
        }
 
+       . = ALIGN(PAGE_SIZE);
        __init_begin = .;
 
        INIT_TEXT_SECTION(PAGE_SIZE)