diff options
author | Eugene (jno) Dvurechenski <jno@linux.vnet.ibm.com> | 2015-09-17 12:41:36 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2016-03-23 16:13:38 +0100 |
commit | b1be0972f9d0e7b93a8906c977f26aca96a70e6a (patch) | |
tree | 5fc88a352f08dbc4ce8ea13633941bb0b51f2c58 /pc-bios | |
parent | 2538039f2c26d66053426fb547e4f25e669baf62 (diff) | |
download | qemu-b1be0972f9d0e7b93a8906c977f26aca96a70e6a.zip qemu-b1be0972f9d0e7b93a8906c977f26aca96a70e6a.tar.gz qemu-b1be0972f9d0e7b93a8906c977f26aca96a70e6a.tar.bz2 |
pc-bios/s390-ccw: add more disk layout checks
Experiments showed possibility of few more "misconfigurations" in disk
layout. They are reported now.
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Eugene (jno) Dvurechenski <jno@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'pc-bios')
-rw-r--r-- | pc-bios/s390-ccw/bootmap.c | 4 | ||||
-rw-r--r-- | pc-bios/s390-ccw/bootmap.h | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c index 4925302..ca60c33 100644 --- a/pc-bios/s390-ccw/bootmap.c +++ b/pc-bios/s390-ccw/bootmap.c @@ -415,7 +415,11 @@ static void ipl_scsi(void) /* The 0-th block (MBR) was already read into sec[] */ sclp_print("Using SCSI scheme.\n"); + debug_print_int("MBR Version", mbr->version_id); + IPL_check(mbr->version_id == 1, + "Unknown MBR layout version, assuming version 1"); debug_print_int("program table", mbr->blockptr.blockno); + IPL_assert(mbr->blockptr.blockno, "No Program Table"); /* Parse the program table */ read_block(mbr->blockptr.blockno, sec, diff --git a/pc-bios/s390-ccw/bootmap.h b/pc-bios/s390-ccw/bootmap.h index f98765b..07e3b20 100644 --- a/pc-bios/s390-ccw/bootmap.h +++ b/pc-bios/s390-ccw/bootmap.h @@ -273,6 +273,15 @@ static inline void IPL_assert(bool term, const char *message) } } +static inline void IPL_check(bool term, const char *message) +{ + if (!term) { + sclp_print("\n! WARNING: "); + sclp_print(message); + sclp_print(" !\n"); + } +} + static const unsigned char ebc2asc[256] = /* 0123456789abcdef0123456789abcdef */ "................................" /* 1F */ |