@@ -290,7 +290,7 @@ static void run_eckd_boot_script(block_number_t bmt_block_nr,
}
debug_print_int("loadparm", loadparm);
- IPL_assert(loadparm <= MAX_TABLE_ENTRIES, "loadparm value greater than"
+ IPL_assert(loadparm < MAX_BOOT_ENTRIES, "loadparm value greater than"
" maximum number of boot entries allowed");
memset(sec, FREE_SPACE_FILLER, sizeof(sec));
@@ -578,7 +578,7 @@ static void ipl_scsi(void)
read_block(mbr->pt.blockno, sec, "Error reading Program Table");
IPL_assert(magic_match(sec, ZIPL_MAGIC), "No zIPL magic in PT");
- while (program_table_entries <= MAX_TABLE_ENTRIES) {
+ while (program_table_entries < MAX_BOOT_ENTRIES) {
if (!prog_table->entry[program_table_entries].scsi.blockno) {
break;
}
@@ -593,7 +593,7 @@ static void ipl_scsi(void)
}
debug_print_int("loadparm", loadparm);
- IPL_assert(loadparm <= MAX_TABLE_ENTRIES, "loadparm value greater than"
+ IPL_assert(loadparm < MAX_BOOT_ENTRIES, "loadparm value greater than"
" maximum number of boot entries allowed");
zipl_run(&prog_table->entry[loadparm].scsi); /* no return */
@@ -57,8 +57,6 @@ typedef union BootMapPointer {
ExtEckdBlockPtr xeckd;
} __attribute__ ((packed)) BootMapPointer;
-#define MAX_TABLE_ENTRIES 30
-
/* aka Program Table */
typedef struct BootMapTable {
uint8_t magic[4];
@@ -94,6 +94,8 @@ bool menu_is_enabled_zipl(void);
int menu_get_enum_boot_index(int entries);
bool menu_is_enabled_enum(void);
+#define MAX_BOOT_ENTRIES 31
+
static inline void fill_hex(char *out, unsigned char val)
{
const char hex[] = "0123456789abcdef";