If the guest attempts an offset to a nonexistent register, just
log this via LOG_GUEST_ERROR rather than killing QEMU with a hw_error.

Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
---
 hw/pl190.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/hw/pl190.c b/hw/pl190.c
index 7332f4d..e8b2fc4 100644
--- a/hw/pl190.c
+++ b/hw/pl190.c
@@ -8,6 +8,7 @@
  */
 
 #include "sysbus.h"
+#include "qemu-log.h"
 
 /* The number of virtual priority levels.  16 user vectors plus the
    unvectored IRQ.  Chained interrupts would require an additional level
@@ -143,7 +144,8 @@ static uint64_t pl190_read(void *opaque, target_phys_addr_t 
offset,
     case 13: /* DEFVECTADDR */
         return s->vect_addr[16];
     default:
-        hw_error("pl190_read: Bad offset %x\n", (int)offset);
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "pl190_read: Bad offset %x\n", (int)offset);
         return 0;
     }
 }
@@ -202,7 +204,8 @@ static void pl190_write(void *opaque, target_phys_addr_t 
offset,
         }
         break;
     default:
-        hw_error("pl190_write: Bad offset %x\n", (int)offset);
+        qemu_log_mask(LOG_GUEST_ERROR,
+                     "pl190_write: Bad offset %x\n", (int)offset);
         return;
     }
     pl190_update(s);
-- 
1.7.11.4


Reply via email to