All of lore.kernel.org
 help / color / mirror / Atom feed
From: deller@kernel.org
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
	Sven Schnelle <svens@stackframe.org>,
	Jason Wang <jasowang@redhat.com>, Helge Deller <deller@gmx.de>
Subject: [PULL 03/12] hw/pci-host/astro: Avoid aborting on access failure
Date: Sun, 11 Feb 2024 13:29:00 +0100	[thread overview]
Message-ID: <20240211122909.5807-4-deller@kernel.org> (raw)
In-Reply-To: <20240211122909.5807-1-deller@kernel.org>

From: Helge Deller <deller@gmx.de>

Instead of stopping the emulation, report a MEMTX_DECODE_ERROR if the OS
tries to access non-existent registers.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 hw/pci-host/astro.c | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/hw/pci-host/astro.c b/hw/pci-host/astro.c
index 37d271118c..96d655f5fb 100644
--- a/hw/pci-host/astro.c
+++ b/hw/pci-host/astro.c
@@ -122,10 +122,6 @@ static MemTxResult elroy_chip_read_with_attrs(void *opaque, hwaddr addr,
     case 0x0800:                /* IOSAPIC_REG_SELECT */
         val = s->iosapic_reg_select;
         break;
-    case 0x0808:
-        val = UINT64_MAX;            /* XXX: tbc. */
-        g_assert_not_reached();
-        break;
     case 0x0810:                /* IOSAPIC_REG_WINDOW */
         switch (s->iosapic_reg_select) {
         case 0x01:              /* IOSAPIC_REG_VERSION */
@@ -135,15 +131,15 @@ static MemTxResult elroy_chip_read_with_attrs(void *opaque, hwaddr addr,
             if (s->iosapic_reg_select < ARRAY_SIZE(s->iosapic_reg)) {
                 val = s->iosapic_reg[s->iosapic_reg_select];
             } else {
-                trace_iosapic_reg_read(s->iosapic_reg_select, size, val);
-                g_assert_not_reached();
+                val = 0;
+                ret = MEMTX_DECODE_ERROR;
             }
         }
         trace_iosapic_reg_read(s->iosapic_reg_select, size, val);
         break;
     default:
-        trace_elroy_read(addr, size, val);
-        g_assert_not_reached();
+        val = 0;
+        ret = MEMTX_DECODE_ERROR;
     }
     trace_elroy_read(addr, size, val);
 
@@ -191,7 +187,7 @@ static MemTxResult elroy_chip_write_with_attrs(void *opaque, hwaddr addr,
         if (s->iosapic_reg_select < ARRAY_SIZE(s->iosapic_reg)) {
             s->iosapic_reg[s->iosapic_reg_select] = val;
         } else {
-            g_assert_not_reached();
+            return MEMTX_DECODE_ERROR;
         }
         break;
     case 0x0840:                /* IOSAPIC_REG_EOI */
@@ -204,7 +200,7 @@ static MemTxResult elroy_chip_write_with_attrs(void *opaque, hwaddr addr,
         }
         break;
     default:
-        g_assert_not_reached();
+        return MEMTX_DECODE_ERROR;
     }
     return MEMTX_OK;
 }
@@ -594,8 +590,8 @@ static MemTxResult astro_chip_read_with_attrs(void *opaque, hwaddr addr,
 #undef EMPTY_PORT
 
     default:
-        trace_astro_chip_read(addr, size, val);
-        g_assert_not_reached();
+        val = 0;
+        ret = MEMTX_DECODE_ERROR;
     }
 
     /* for 32-bit accesses mask return value */
@@ -610,6 +606,7 @@ static MemTxResult astro_chip_write_with_attrs(void *opaque, hwaddr addr,
                                               uint64_t val, unsigned size,
                                               MemTxAttrs attrs)
 {
+    MemTxResult ret = MEMTX_OK;
     AstroState *s = opaque;
 
     trace_astro_chip_write(addr, size, val);
@@ -686,11 +683,9 @@ static MemTxResult astro_chip_write_with_attrs(void *opaque, hwaddr addr,
 #undef EMPTY_PORT
 
     default:
-        /* Controlled by astro_chip_mem_valid above.  */
-        trace_astro_chip_write(addr, size, val);
-        g_assert_not_reached();
+        ret = MEMTX_DECODE_ERROR;
     }
-    return MEMTX_OK;
+    return ret;
 }
 
 static const MemoryRegionOps astro_chip_ops = {
-- 
2.43.0



  parent reply	other threads:[~2024-02-11 12:31 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-11 12:28 [PULL 00/12] Hppa64 patches deller
2024-02-11 12:28 ` [PULL 01/12] disas/hppa: Add disassembly for qemu specific instructions deller
2024-02-11 12:28 ` [PULL 02/12] target/hppa: Add "diag 0x101" for console output support deller
2024-02-11 12:29 ` deller [this message]
2024-02-11 12:29 ` [PULL 04/12] hw/pci-host/astro: Implement Hard Fail and Soft Fail mode deller
2024-02-11 12:29 ` [PULL 05/12] lasi: allow access to LAN MAC address registers deller
2024-02-11 12:29 ` [PULL 06/12] target/hppa: Implement do_transaction_failed handler for I/O errors deller
2024-02-11 12:29 ` [PULL 07/12] lasi: Add reset I/O ports for LASI audio and FDC deller
2024-02-11 12:29 ` [PULL 08/12] target/hppa: Allow read-access to PSW with rsm 0, reg instruction deller
2024-02-11 12:29 ` [PULL 09/12] target/hppa: PDC_BTLB_INFO uses 32-bit ints deller
2024-02-11 12:29 ` [PULL 10/12] hw/net/tulip: add chip status register values deller
2024-02-11 12:29 ` [PULL 11/12] target/hppa: Update SeaBIOS-hppa to version 16 deller
2024-02-11 18:48   ` Michael Tokarev
2024-02-11 18:49   ` Michael Tokarev
2024-02-12 23:45     ` Helge Deller
2024-02-11 12:29 ` [PULL 12/12] hw/hppa/machine: Load 64-bit firmware on 64-bit machines deller
2024-02-12 21:16 ` [PULL 00/12] Hppa64 patches Peter Maydell
2024-02-12 23:04   ` Helge Deller
2024-02-13  9:10     ` Peter Maydell
2024-02-13 11:00       ` Helge Deller
  -- strict thread matches above, loose matches on Subject: below --
2024-02-12 23:47 deller
2024-02-12 23:47 ` [PULL 03/12] hw/pci-host/astro: Avoid aborting on access failure deller

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=20240211122909.5807-4-deller@kernel.org \
    --to=deller@kernel.org \
    --cc=deller@gmx.de \
    --cc=jasowang@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=svens@stackframe.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.