]> xenbits.xensource.com Git - qemu-xen-3.3-testing.git/commitdiff
Move WIN_SETFEATURES 0x02 and 0x82 write_cache manipulation to correct place
authorIan Jackson <iwj@mariner.uk.xensource.com>
Fri, 28 Mar 2008 09:36:36 +0000 (09:36 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 12 May 2008 11:16:24 +0000 (12:16 +0100)
Thanks to Paul Brook for spotting the problem, which was introduced by
me when I merged these changes from xen-unstable.

hw/ide.c

index acb2139f1d902810e47c4b4a4202fad1e6e3e1fc..0fb58e79946789c4a468f15448c74b4b4d2ffeee 100644 (file)
--- a/hw/ide.c
+++ b/hw/ide.c
@@ -2114,18 +2114,6 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
             switch(s->feature) {
             case 0xcc: /* reverting to power-on defaults enable */
             case 0x66: /* reverting to power-on defaults disable */
-            case 0x02: /* write cache enable */
-                s->write_cache = 1;
-                s->status = READY_STAT | SEEK_STAT;
-                ide_set_irq(s);
-                break;
-            case 0x82: /* write cache disable */
-                s->write_cache = 0;
-                ret = bdrv_flush(s->bs);
-               if (ret != 0) goto abort_cmd;
-                s->status = READY_STAT | SEEK_STAT;
-                ide_set_irq(s);
-                break;
             case 0xaa: /* read look-ahead enable */
             case 0x55: /* read look-ahead disable */
             case 0x05: /* set advanced power management mode */
@@ -2139,6 +2127,18 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
                 s->status = READY_STAT | SEEK_STAT;
                 ide_set_irq(s);
                 break;
+            case 0x02: /* write cache enable */
+                s->write_cache = 1;
+                s->status = READY_STAT | SEEK_STAT;
+                ide_set_irq(s);
+                break;
+            case 0x82: /* write cache disable */
+                s->write_cache = 0;
+                ret = bdrv_flush(s->bs);
+               if (ret != 0) goto abort_cmd;
+                s->status = READY_STAT | SEEK_STAT;
+                ide_set_irq(s);
+                break;
             case 0x03: { /* set transfer mode */
                uint8_t val = s->nsector & 0x07;