• Yinghai Lu's avatar
    x86: Use find_e820() instead of hard coded trampoline address · 893f38d1
    Yinghai Lu authored
    Jens found the following crash/regression:
    
    [    0.000000] found SMP MP-table at [ffff8800000fdd80] fdd80
    [    0.000000] Kernel panic - not syncing: Overlapping early reservations 12-f011 MP-table mpc to 0-fff BIOS data page
    
    and
    
    [    0.000000] Kernel panic - not syncing: Overlapping early reservations 12-f011 MP-table mpc to 6000-7fff TRAMPOLINE
    
    and bisected it to b24c2a92 ("x86: Move find_smp_config()
    earlier and avoid bootmem usage").
    
    It turns out the BIOS is using the first 64k for mptable,
    without reserving it.
    
    So try to find good range for the real-mode trampoline instead of
    hard coding it, in case some bios tries to use that range for sth.
    Reported-by: default avatarJens Axboe <jens.axboe@oracle.com>
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Tested-by: default avatarJens Axboe <jens.axboe@oracle.com>
    Cc: Randy Dunlap <randy.dunlap@oracle.com>
    LKML-Reference: <4B21630A.6000308@kernel.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    893f38d1
head32.c 1.6 KB