1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00

Prevent BSS from being cleared twice on BookE

Summary:
First time BSS is cleared in booke_init(), Second time it's cleared in
powerpc_init().  Any variable initialized between two those guys gets wiped out
what is wrong. In particular it wipes tlb1_entries initialized by tlb1_init(),
which was fine when tlb1_init() was called a second time, but this was removed
in r304656.

Submitted by:	Ivan Krivonos <int0dster_gmail.com>
Differential Revision: https://reviews.freebsd.org/D7638
This commit is contained in:
Justin Hibbits 2016-08-26 03:36:37 +00:00
parent 7e89a3221f
commit 22983a8768
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=304829

View File

@ -284,8 +284,14 @@ powerpc_init(vm_offset_t fdt, vm_offset_t toc, vm_offset_t ofentry, void *mdp)
#endif
}
} else {
#if !defined(BOOKE)
/*
* On BOOKE the BSS is already cleared and some variables
* initialized. Do not wipe them out.
*/
bzero(__sbss_start, __sbss_end - __sbss_start);
bzero(__bss_start, _end - __bss_start);
#endif
init_static_kenv(NULL, 0);
}
/* Store boot environment state */