]> xenbits.xen.org Git - xenclient/xen-pq.git/commitdiff
fix 32 bit stack issue in cdrom reset code
authorJames Mckenzie <jamesmck@taoand.cam.xci-test.com>
Thu, 10 Dec 2009 22:07:00 +0000 (22:07 +0000)
committerJames Mckenzie <jamesmck@taoand.cam.xci-test.com>
Thu, 10 Dec 2009 22:07:00 +0000 (22:07 +0000)
master/reset-atapi-after-failed-cd-boot

index a12097ea62c4f84398d84e062fa55df41102da86..4d66ba002b58e0282279d28813b132a4682e8fa2 100644 (file)
@@ -1,16 +1,23 @@
 diff --git a/tools/firmware/rombios/rombios.c b/tools/firmware/rombios/rombios.c
-index 8157e33..3dccd77 100644
+index 8157e33..c6d61f8 100644
 --- a/tools/firmware/rombios/rombios.c
 +++ b/tools/firmware/rombios/rombios.c
-@@ -8345,6 +8345,11 @@ ASM_END
+@@ -8343,11 +8343,16 @@ ASM_END
+     if ((status & 0x00ff)!=0)
+     status = cdrom_boot((Bit16u) 1);
  
-     // If failure
+-    // If failure
      if ( (status & 0x00ff) !=0 ) {
-+      int device;
-+      for (device=0; device<BX_MAX_ATA_DEVICES;device++) {
-+              ata_reset (device);
-+      }
-+
        print_cdromboot_failure(status);
        print_boot_failure(e.type, 1);
-       return;
+-      return;
++
++      for (status=0; status<BX_MAX_ATA_DEVICES;status++) {
++        if (atapi_is_cdrom(status)) 
++              ata_reset (status);
++      }
++
++return;
+     }
+     bootdrv = (Bit8u)(status>>8);