pc-bios/s390-ccw: Abort IPL on invalid loadparm
Because the loadparm specifies an exact kernel the user wants to boot, if the loadparm is invalid it must represent a misconfiguration of the guest. Thus we should abort the IPL immediately, without attempting to use other devices, to avoid booting into an unintended guest image. Signed-off-by: Jared Rossi <jrossi@linux.ibm.com> Message-ID: <20250117212235.1324063-2-jrossi@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
bbfa7f8558
commit
64fa0de46e
@ -336,8 +336,7 @@ static int run_eckd_boot_script(block_number_t bmt_block_nr,
|
||||
|
||||
debug_print_int("loadparm", loadparm);
|
||||
if (loadparm >= MAX_BOOT_ENTRIES) {
|
||||
puts("loadparm value greater than max number of boot entries allowed");
|
||||
return -EINVAL;
|
||||
panic("loadparm value greater than max number of boot entries allowed");
|
||||
}
|
||||
|
||||
memset(sec, FREE_SPACE_FILLER, sizeof(sec));
|
||||
@ -348,8 +347,8 @@ static int run_eckd_boot_script(block_number_t bmt_block_nr,
|
||||
|
||||
block_nr = gen_eckd_block_num(&bmt->entry[loadparm].xeckd, ldipl);
|
||||
if (block_nr == NULL_BLOCK_NR) {
|
||||
puts("Cannot find Boot Map Table Entry");
|
||||
return -EIO;
|
||||
printf("The requested boot entry (%d) is invalid\n", loadparm);
|
||||
panic("Invalid loadparm");
|
||||
}
|
||||
|
||||
memset(sec, FREE_SPACE_FILLER, sizeof(sec));
|
||||
@ -792,8 +791,12 @@ static int ipl_scsi(void)
|
||||
|
||||
debug_print_int("loadparm", loadparm);
|
||||
if (loadparm >= MAX_BOOT_ENTRIES) {
|
||||
puts("loadparm value greater than max number of boot entries allowed");
|
||||
return -EINVAL;
|
||||
panic("loadparm value greater than max number of boot entries allowed");
|
||||
}
|
||||
|
||||
if (!valid_entries[loadparm]) {
|
||||
printf("The requested boot entry (%d) is invalid\n", loadparm);
|
||||
panic("Invalid loadparm");
|
||||
}
|
||||
|
||||
return zipl_run(&prog_table->entry[loadparm].scsi);
|
||||
|
Loading…
x
Reference in New Issue
Block a user