mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-26 04:16:39 +00:00
s390/early: fix sclp_early_sccb variable lifetime
Commitada1da31ce
("s390/sclp: sort out physical vs virtual pointers usage") fixed the notion of virtual address for sclp_early_sccb pointer. However, it did not take into account that kasan_early_init() can also output messages and sclp_early_sccb should be adjusted by the time kasan_early_init() is called. Currently it is not a problem, since virtual and physical addresses on s390 are the same. Nevertheless, should they ever differ, this would cause an invalid pointer access. Fixes:ada1da31ce
("s390/sclp: sort out physical vs virtual pointers usage") Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
9c3205b2b0
commit
639886b71d
3 changed files with 2 additions and 2 deletions
|
@ -288,7 +288,6 @@ static void __init sort_amode31_extable(void)
|
|||
|
||||
void __init startup_init(void)
|
||||
{
|
||||
sclp_early_adjust_va();
|
||||
reset_tod_clock();
|
||||
check_image_bootable();
|
||||
time_early_init();
|
||||
|
|
|
@ -25,6 +25,7 @@ ENTRY(startup_continue)
|
|||
larl %r14,init_task
|
||||
stg %r14,__LC_CURRENT
|
||||
larl %r15,init_thread_union+THREAD_SIZE-STACK_FRAME_OVERHEAD-__PT_SIZE
|
||||
brasl %r14,sclp_early_adjust_va # allow sclp_early_printk
|
||||
#ifdef CONFIG_KASAN
|
||||
brasl %r14,kasan_early_init
|
||||
#endif
|
||||
|
|
|
@ -163,7 +163,7 @@ static void __init sclp_early_console_detect(struct init_sccb *sccb)
|
|||
sclp.has_linemode = 1;
|
||||
}
|
||||
|
||||
void __init sclp_early_adjust_va(void)
|
||||
void __init __no_sanitize_address sclp_early_adjust_va(void)
|
||||
{
|
||||
sclp_early_sccb = __va((unsigned long)sclp_early_sccb);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue