qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Yoshinori Sato" <ysato@users.sourceforge.jp>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PULL 09/30] hw/char/sh_serial: Do not abort on invalid access
Date: Sat, 30 Oct 2021 19:05:54 +0200	[thread overview]
Message-ID: <20211030170615.2636436-10-f4bug@amsat.org> (raw)
In-Reply-To: <20211030170615.2636436-1-f4bug@amsat.org>

From: BALATON Zoltan <balaton@eik.bme.hu>

Replace fprintf with qemu_log_mask LOG_GUEST_ERROR as the intention is
to handle valid accesses in these functions so if we get to these
errors then it's an invalid access. Do not abort as that would allow
the guest to crash QEMU and the practice in other devices is to not do
that just log and ignore the invalid access. While at it also simplify
the complex bit ops to check if a return value was set which can be
done much simpler and clearer.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <6b46045141d6d9cc32e17c223896fa1116384796.1635541329.git.balaton@eik.bme.hu>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/char/sh_serial.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 053f45e1a62..2d6ea0042ed 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -31,6 +31,7 @@
 #include "chardev/char-fe.h"
 #include "qapi/error.h"
 #include "qemu/timer.h"
+#include "qemu/log.h"
 #include "trace.h"
 
 #define SH_SERIAL_FLAG_TEND (1 << 0)
@@ -195,17 +196,16 @@ static void sh_serial_write(void *opaque, hwaddr offs,
             return;
         }
     }
-
-    fprintf(stderr, "sh_serial: unsupported write to 0x%02"
-            HWADDR_PRIx "\n", offs);
-    abort();
+    qemu_log_mask(LOG_GUEST_ERROR,
+                  "%s: unsupported write to 0x%02" HWADDR_PRIx "\n",
+                  __func__, offs);
 }
 
 static uint64_t sh_serial_read(void *opaque, hwaddr offs,
                                unsigned size)
 {
     sh_serial_state *s = opaque;
-    uint32_t ret = ~0;
+    uint32_t ret = UINT32_MAX;
 
 #if 0
     switch (offs) {
@@ -299,10 +299,11 @@ static uint64_t sh_serial_read(void *opaque, hwaddr offs,
     }
     trace_sh_serial_read(size, offs, ret);
 
-    if (ret & ~((1 << 16) - 1)) {
-        fprintf(stderr, "sh_serial: unsupported read from 0x%02"
-                HWADDR_PRIx "\n", offs);
-        abort();
+    if (ret > UINT16_MAX) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: unsupported read from 0x%02" HWADDR_PRIx "\n",
+                      __func__, offs);
+        ret = 0;
     }
 
     return ret;
-- 
2.31.1



  parent reply	other threads:[~2021-10-30 17:22 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-30 17:05 [PULL 00/30] Renesas SH-4 patches for 2021-10-30 Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 01/30] hw/sh4: Coding style: Remove tabs Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 02/30] hw/sh4: Coding style: Fix multi-line comments Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 03/30] hw/sh4: Coding style: White space fixes Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 04/30] hw/sh4: Coding style: Add missing braces Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 05/30] hw/sh4: Coding style: Remove unnecessary casts Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 06/30] hw/sh4: Fix typos in a comment Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 07/30] hw/sh4: Change debug printfs to traces Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 08/30] hw/sh4/r2d: Use error_report instead of fprintf to stderr Philippe Mathieu-Daudé
2021-10-30 17:05 ` Philippe Mathieu-Daudé [this message]
2021-10-30 17:05 ` [PULL 10/30] hw/char/sh_serial: Rename type sh_serial_state to SHSerialState Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 11/30] hw/char/sh_serial: Embed QEMUTimer in state struct Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 12/30] hw/char/sh_serial: Split off sh_serial_reset() from sh_serial_init() Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 13/30] hw/char/sh_serial: QOM-ify Philippe Mathieu-Daudé
2021-10-30 17:05 ` [PULL 14/30] hw/char/sh_serial: Add device id to trace output Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 15/30] hw/intc/sh_intc: Use existing macro instead of local one Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 16/30] hw/intc/sh_intc: Turn some defines into an enum Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 17/30] hw/intc/sh_intc: Rename iomem region Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 18/30] hw/intc/sh_intc: Drop another useless macro Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 19/30] hw/intc/sh_intc: Move sh_intc_register() closer to its only user Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 20/30] hw/intc/sh_intc: Remove excessive parenthesis Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 21/30] hw/intc/sh_intc: Use array index instead of pointer arithmetics Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 22/30] hw/intc/sh_intc: Inline and drop sh_intc_source() function Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 23/30] hw/intc/sh_intc: Replace abort() with g_assert_not_reached() Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 24/30] hw/intc/sh_intc: Avoid using continue in loops Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 25/30] hw/intc/sh_intc: Simplify allocating sources array Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 26/30] hw/intc/sh_intc: Remove unneeded local variable initialisers Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 27/30] hw/timer/sh_timer: Rename sh_timer_state to SHTimerState Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 28/30] hw/timer/sh_timer: Do not wrap lines that are not too long Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 29/30] hw/timer/sh_timer: Fix timer memory region size Philippe Mathieu-Daudé
2021-10-30 17:06 ` [PULL 30/30] hw/timer/sh_timer: Remove use of hw_error Philippe Mathieu-Daudé
2021-10-30 20:13 ` [PULL 00/30] Renesas SH-4 patches for 2021-10-30 Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211030170615.2636436-10-f4bug@amsat.org \
    --to=f4bug@amsat.org \
    --cc=magnus.damm@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).