mirror of https://gitee.com/openkylin/linux.git
s390/mm: use correct address space when enabling DAT
Right now the kernel uses the primary address space until finally the switch to the correct home address space will be done when the idle PSW will be loaded within psw_idle(). Correct this and simply use the home address space when DAT is enabled for the first time. This doesn't really fix a bug, but fixes odd behavior. Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
36f6237ebf
commit
60c497014e
|
@ -81,6 +81,7 @@ void __init paging_init(void)
|
|||
{
|
||||
unsigned long max_zone_pfns[MAX_NR_ZONES];
|
||||
unsigned long pgd_type, asce_bits;
|
||||
psw_t psw;
|
||||
|
||||
init_mm.pgd = swapper_pg_dir;
|
||||
if (VMALLOC_END > (1UL << 42)) {
|
||||
|
@ -100,7 +101,10 @@ void __init paging_init(void)
|
|||
__ctl_load(S390_lowcore.kernel_asce, 1, 1);
|
||||
__ctl_load(S390_lowcore.kernel_asce, 7, 7);
|
||||
__ctl_load(S390_lowcore.kernel_asce, 13, 13);
|
||||
__arch_local_irq_stosm(0x04);
|
||||
psw.mask = __extract_psw();
|
||||
psw_bits(psw).t = 1;
|
||||
psw_bits(psw).as = PSW_AS_HOME;
|
||||
__load_psw_mask(psw.mask);
|
||||
|
||||
sparse_memory_present_with_active_regions(MAX_NUMNODES);
|
||||
sparse_init();
|
||||
|
|
Loading…
Reference in New Issue