qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errors
@ 2008-08-05 11:55 Samuel Thibault
  2008-08-06  2:26 ` Anthony Liguori
  2008-08-06 16:21 ` [Qemu-devel] " Samuel Thibault
  0 siblings, 2 replies; 9+ messages in thread
From: Samuel Thibault @ 2008-08-05 11:55 UTC (permalink / raw)
  To: qemu-devel

report read/write errors to IDE guest driver as ECC errors
so that the guest knows that e.g. writes on read-only backends have
failed.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>

Index: hw/ide.c
===================================================================
--- hw/ide.c	(révision 4985)
+++ hw/ide.c	(copie de travail)
@@ -891,7 +891,6 @@
     return 1;
 }
 
-/* XXX: handle errors */
 static void ide_read_dma_cb(void *opaque, int ret)
 {
     BMDMAState *bm = opaque;
@@ -899,6 +898,14 @@
     int n;
     int64_t sector_num;
 
+    if (ret) {
+        s->status = READY_STAT | ERR_STAT;
+        s->error = ABRT_ERR | ECC_ERR;
+        s->nsector = 0;
+        ide_set_irq(s);
+        goto eot;
+    }
+
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {
@@ -992,7 +999,6 @@
     }
 }
 
-/* XXX: handle errors */
 static void ide_write_dma_cb(void *opaque, int ret)
 {
     BMDMAState *bm = opaque;
@@ -1000,6 +1006,14 @@
     int n;
     int64_t sector_num;
 
+    if (ret) {
+        s->status = READY_STAT | ERR_STAT;
+        s->error = ABRT_ERR | ECC_ERR;
+        s->nsector = 0;
+        ide_set_irq(s);
+        goto eot;
+    }
+
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-08-11 17:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-05 11:55 [Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errors Samuel Thibault
2008-08-06  2:26 ` Anthony Liguori
2008-08-06  9:28   ` Daniel P. Berrange
2008-08-06 12:22     ` Jamie Lokier
2008-08-11 16:47     ` Ian Jackson
2008-08-11 17:01       ` [Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errorsj Samuel Thibault
2008-08-11 17:56         ` Jamie Lokier
2008-08-11 17:05       ` [Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errors Anthony Liguori
2008-08-06 16:21 ` [Qemu-devel] " Samuel Thibault

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).