On 11/14/23 12:55, Patrick Venture wrote:
> Avoids unaligned pointer issues.
>
> Reviewed-by: Chris Rauer <crauer@google.com>
> Reviewed-by: Peter Foley <pefoley@google.com>
> Signed-off-by: Patrick Venture <venture@google.com>
> ---
> system/memory.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/system/memory.c b/system/memory.c
> index 304fa843ea..02c97d5187 100644
> --- a/system/memory.c
> +++ b/system/memory.c
> @@ -1343,16 +1343,16 @@ static uint64_t memory_region_ram_device_read(void *opaque,
>
> switch (size) {
> case 1:
> - data = "" *)(mr->ram_block->host + addr);
> + memcpy(&data, mr->ram_block->host + addr, sizeof(uint8_t));
This is incorrect, especially for big-endian hosts.
You want to use "qemu/bswap.h", ld*_he_p(), st*_he_p().
Thanks, I'll take a look.
r~