summary refs log tree commit diff stats
path: root/hw/onenand.c
diff options
context:
space:
mode:
authorJuha Riihimäki <juha.riihimaki@nokia.com>2011-10-20 14:53:35 +0200
committerAndrzej Zaborowski <andrew.zaborowski@intel.com>2011-11-14 03:22:30 +0100
commita3efecb847dd89886f7cd3f71661b2d79ec68072 (patch)
treee659c79a727713c97aef7a084ca786b619618dbd /hw/onenand.c
parent3fc3abf7ecc5b27fa4f6014b44101072134ea0e4 (diff)
downloadfocaccia-qemu-a3efecb847dd89886f7cd3f71661b2d79ec68072.tar.gz
focaccia-qemu-a3efecb847dd89886f7cd3f71661b2d79ec68072.zip
hw/onenand: reject read-only drives
Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Diffstat (limited to 'hw/onenand.c')
-rw-r--r--hw/onenand.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/onenand.c b/hw/onenand.c
index 6f68f70698..7898da9321 100644
--- a/hw/onenand.c
+++ b/hw/onenand.c
@@ -26,6 +26,7 @@
 #include "memory.h"
 #include "exec-memory.h"
 #include "sysbus.h"
+#include "qemu-error.h"
 
 /* 11 for 2kB-page OneNAND ("2nd generation") and 10 for 1kB-page chips */
 #define PAGE_SHIFT	11
@@ -772,6 +773,10 @@ static int onenand_initfn(SysBusDevice *dev)
         s->image = memset(g_malloc(size + (size >> 5)),
                           0xff, size + (size >> 5));
     } else {
+        if (bdrv_is_read_only(s->bdrv)) {
+            error_report("Can't use a read-only drive");
+            return -1;
+        }
         s->bdrv_cur = s->bdrv;
     }
     s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT),