s390/extable: sort amode31 extable early
The early program check handler is active before the amode31 extable is sorted. Therefore in case a program check happens early within the amode31 code the extable entry might not be found. Fix this by sorting the amode31 extable early. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
9d792ef17f
commit
a156f09c90
|
|
@ -293,6 +293,11 @@ static void __init check_image_bootable(void)
|
|||
disabled_wait();
|
||||
}
|
||||
|
||||
static void __init sort_amode31_extable(void)
|
||||
{
|
||||
sort_extable(__start_amode31_ex_table, __stop_amode31_ex_table);
|
||||
}
|
||||
|
||||
void __init startup_init(void)
|
||||
{
|
||||
sclp_early_adjust_va();
|
||||
|
|
@ -301,6 +306,7 @@ void __init startup_init(void)
|
|||
time_early_init();
|
||||
init_kernel_storage_key();
|
||||
lockdep_off();
|
||||
sort_amode31_extable();
|
||||
setup_lowcore_early();
|
||||
setup_facility_list();
|
||||
detect_machine_type();
|
||||
|
|
|
|||
|
|
@ -291,7 +291,6 @@ static void __init test_monitor_call(void)
|
|||
|
||||
void __init trap_init(void)
|
||||
{
|
||||
sort_extable(__start_amode31_ex_table, __stop_amode31_ex_table);
|
||||
local_mcck_enable();
|
||||
test_monitor_call();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue