Quoting Thomas Huth (2023-09-04 11:59:30) [...] > If we want tests to be able in other modes in the future... > > > + */ > > + old_cr13 = stctg(13); > > + lctlg(13, stctg(1)); > > + > > + /* switch to home space so guest tables can be different from host */ > > + psw_mask_set_bits(PSW_MASK_HOME); > > + > > + /* also handle all interruptions in home space while in SIE */ > > + irq_set_dat_mode(true, AS_HOME); > > + > > while (vm->sblk->icptcode == 0) { > > sie64a(vm->sblk, &vm->save_area); > > sie_handle_validity(vm); > > @@ -66,6 +86,12 @@ void sie(struct vm *vm) > > vm->save_area.guest.grs[14] = vm->sblk->gg14; > > vm->save_area.guest.grs[15] = vm->sblk->gg15; > > > > + irq_set_dat_mode(true, AS_PRIM); > > + psw_mask_clear_bits(PSW_MASK_HOME); > > ... we should maybe restore the previous mode here instead of switching > always to primary mode? I don't want to add untested "should work" code, so I'd much prefer if we'd have a proper test which uses multiple address spaces - and that seems out of scope for this series to me. > Anyway, could be done later, but you might want to update your comment. Yep, agree, I'd prefer to do this later. Pardon if I'm not getting it but the comment IMO makes sufficiently clear that multiple AS are for future extensions. If you have any suggestion on how this could be clearer, I'd be happy to incorporate.