fix off-by-one error in pci_piix3_xen_ide_unplug
authorJames Harper <james@ejbdigital.com.au>
Thu, 30 Oct 2014 10:08:28 +0000 (10:08 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Thu, 30 Oct 2014 14:16:39 +0000 (14:16 +0000)
Fix off-by-one error when unplugging disks, which would otherwise leave the last ATA disk plugged, with obvious consequences. Also rewrite loop to be more readable.

Signed-off-by: James Harper <james.harper@ejbdigital.com.au>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
hw/ide/piix.c

index 574b9c1..b0172fb 100644 (file)
@@ -171,11 +171,11 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev)
 {
     PCIIDEState *pci_ide;
     DriveInfo *di;
-    int i = 0;
+    int i;
 
     pci_ide = PCI_IDE(dev);
 
-    for (; i < 3; i++) {
+    for (i = 0; i < 4; i++) {
         di = drive_get_by_index(IF_IDE, i);
         if (di != NULL && !di->media_cd) {
             BlockBackend *blk = blk_by_legacy_dinfo(di);