qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] [PATCH] system/memory: Fix max access size


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH] [PATCH] system/memory: Fix max access size
Date: Mon, 22 Jul 2024 16:29:07 +0200
User-agent: Mozilla Thunderbird

On 22/7/24 13:53, Paolo Bonzini wrote:
On Sat, Jul 20, 2024 at 4:30 PM Peter Maydell <peter.maydell@linaro.org> wrote:
If the HPET timer device is supposed to permit 64 bit writes and it is not
doing so, then that needs to be fixed in the HPET timer device model, by
making sure that its read/write functions correctly handle the size=8 case
and then setting access_size_max =8 in its MemoryRegionOps struct.

It does, and I've started looking into it[1].

The replacement for this patch is simple (on top of that branch):

diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
index 5e60fedc089..ac55dd1ebd6 100644
--- a/hw/timer/hpet.c
+++ b/hw/timer/hpet.c
@@ -637,6 +637,10 @@ static const MemoryRegionOps hpet_ram_ops = {
          .min_access_size = 4,
          .max_access_size = 8,
      },
+    .impl = {
+        .min_access_size = 4,
+        .max_access_size = 8,

It seems this model could be simplified using .min_access_size = 8,
letting the core memory layer handle the % 4 byte accesses (the
read path is obvious, the write one a bit less). Nothing urgent,
possibly a BitSizedTask.

+    },
      .endianness = DEVICE_NATIVE_ENDIAN,
  };

I'll now look into the other patch for interrupts. Thanks for testing
my changes!

Paolo

[1] https://gitlab.com/bonzini/qemu/-/commits/hpet





reply via email to

[Prev in Thread] Current Thread [Next in Thread]