]> git.proxmox.com Git - mirror_qemu.git/commitdiff
pc-bios/s390-ccw: add more disk layout checks
authorEugene (jno) Dvurechenski <jno@linux.vnet.ibm.com>
Thu, 17 Sep 2015 10:41:36 +0000 (12:41 +0200)
committerCornelia Huck <cornelia.huck@de.ibm.com>
Wed, 23 Mar 2016 15:13:38 +0000 (16:13 +0100)
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>
pc-bios/s390-ccw/bootmap.c
pc-bios/s390-ccw/bootmap.h

index 492530275da270726f7a0b614afc39def030c636..ca60c333e320f618279ab4dadf2695ef3d0d772f 100644 (file)
@@ -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,
index f98765b841f7c8c5b71c527ac3515ea6b554581f..07e3b20b7a3a5eb3f50640c2c875156014f73018 100644 (file)
@@ -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 */