summary refs log tree commit diff stats
path: root/vl.c
diff options
context:
space:
mode:
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-26 16:04:29 +0000
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-26 16:04:29 +0000
commitb22205f2f45d5c5ed1e0e0b83cf258352283d6c4 (patch)
tree35dbf8e6e1949d89f03604a8921194baee13ecc2 /vl.c
parent47e4ca5abd9679300e78771de923ce9d708467cb (diff)
downloadfocaccia-qemu-b22205f2f45d5c5ed1e0e0b83cf258352283d6c4.tar.gz
focaccia-qemu-b22205f2f45d5c5ed1e0e0b83cf258352283d6c4.zip
Errors while registering ioports are not fatal (Glauber Costa).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4261 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/vl.c b/vl.c
index 232072b261..3649313380 100644
--- a/vl.c
+++ b/vl.c
@@ -324,13 +324,13 @@ int register_ioport_read(int start, int length, int size,
     } else if (size == 4) {
         bsize = 2;
     } else {
-        hw_error("register_ioport_read: invalid size");
+        fprintf(stderr, "register_ioport_read: invalid size\n");
         return -1;
     }
     for(i = start; i < start + length; i += size) {
         ioport_read_table[bsize][i] = func;
         if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque)
-            hw_error("register_ioport_read: invalid opaque");
+            fprintf(stderr, "register_ioport_read: invalid opaque\n");
         ioport_opaque[i] = opaque;
     }
     return 0;
@@ -349,13 +349,15 @@ int register_ioport_write(int start, int length, int size,
     } else if (size == 4) {
         bsize = 2;
     } else {
-        hw_error("register_ioport_write: invalid size");
+        fprintf(stderr, "register_ioport_write: invalid size\n");
         return -1;
     }
     for(i = start; i < start + length; i += size) {
         ioport_write_table[bsize][i] = func;
-        if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque)
-            hw_error("register_ioport_write: invalid opaque");
+        if (ioport_opaque[i] != NULL && ioport_opaque[i] != opaque) {
+            fprintf(stderr, "register_ioport_write: invalid opaque\n");
+            return -1;
+        }
         ioport_opaque[i] = opaque;
     }
     return 0;