On 7/20/20 1:45 PM, Thomas Huth wrote: > On 15/07/2020 11.40, Janosch Frank wrote: >> jump_to_low_kernel() and the functions that it calls will already or >> 64 bit addressing into the reset psw mask when executing >> jump_to_IPL_2() after the diag308 subcode 1. > > But there is also a check in jump_to_low_kernel that could be affected > by your change: > > if (*((uint64_t *)0) & RESET_PSW_MASK) { > jump_to_IPL_code((*((uint64_t *)0)) & PSW_MASK_SHORT_ADDR); > } > > ... but I assume that there should not be any kernels out there in the > wild which do not have these bits set, so I think your modifications > here should be ok. The mask needs to have the short bit indication set so it needs to be != 0 anyway, no? > > Acked-by: Thomas Huth > > >> The kernel proper is then branched to rather than doing a full PSW >> change. >> >> Signed-off-by: Janosch Frank >> --- >> pc-bios/s390-ccw/dasd-ipl.c | 3 --- >> 1 file changed, 3 deletions(-) >> >> diff --git a/pc-bios/s390-ccw/dasd-ipl.c b/pc-bios/s390-ccw/dasd-ipl.c >> index 0fc879bb8e..e8f2846740 100644 >> --- a/pc-bios/s390-ccw/dasd-ipl.c >> +++ b/pc-bios/s390-ccw/dasd-ipl.c >> @@ -206,7 +206,6 @@ static void run_ipl2(SubChannelId schid, uint16_t cutype, uint32_t addr) >> */ >> void dasd_ipl(SubChannelId schid, uint16_t cutype) >> { >> - PSWLegacy *pswl = (PSWLegacy *) 0x00; >> uint32_t ipl2_addr; >> >> /* Construct Read IPL CCW and run it to read IPL1 from boot disk */ >> @@ -229,7 +228,5 @@ void dasd_ipl(SubChannelId schid, uint16_t cutype) >> run_ipl2(schid, cutype, ipl2_addr); >> >> /* Transfer control to the guest operating system */ >> - pswl->mask |= PSW_MASK_EAMODE; /* Force z-mode */ >> - pswl->addr |= PSW_MASK_BAMODE; /* ... */ >> jump_to_low_kernel(); >> } >