[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC
From: |
Samuel Thibault |
Subject: |
[Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errors |
Date: |
Tue, 5 Aug 2008 12:55:06 +0100 |
User-agent: |
Mutt/1.5.12-2006-07-14 |
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 <address@hidden>
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) {
- [Qemu-devel] [PATCH] report read/write errors to IDE guest driver as ECC errors,
Samuel Thibault <=
[Qemu-devel] Re: [PATCH] report read/write errors to IDE guest driver as ECC errors, Samuel Thibault, 2008/08/06