[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] plugins: Fix physical address calculation for IO regions
From: |
Aaron Lindsay |
Subject: |
Re: [PATCH] plugins: Fix physical address calculation for IO regions |
Date: |
Tue, 20 Jul 2021 16:04:16 -0400 |
For reference, this patch is intended to address this conversation:
https://lists.nongnu.org/archive/html/qemu-devel/2021-07/msg01293.html
This appears to be better than the previous version in my testing, but I
absolutely welcome being told there is a better way to solve this!
Thanks!
-Aaron
On Jul 20 15:57, Aaron Lindsay wrote:
> The address calculation for IO regions introduced by
>
> commit 787148bf928a54b5cc86f5b434f9399e9737679c
> Author: Aaron Lindsay <aaron@os.amperecomputing.com>
> plugins: Expose physical addresses instead of device offsets
>
> is not always accurate. Use the more correct
> MemoryRegionSection.offset_within_address_space.
Whoops, forgot my:
Signed-off-by: Aaron Lindsay <aaron@os.amperecomputing.com>
> ---
> plugins/api.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/plugins/api.c b/plugins/api.c
> index 5c1a413928..ba14e6f2b2 100644
> --- a/plugins/api.c
> +++ b/plugins/api.c
> @@ -319,7 +319,7 @@ uint64_t qemu_plugin_hwaddr_phys_addr(const struct
> qemu_plugin_hwaddr *haddr)
> return block->offset + offset + block->mr->addr;
> } else {
> MemoryRegionSection *mrs = haddr->v.io.section;
> - return haddr->v.io.offset + mrs->mr->addr;
> + return mrs->offset_within_address_space + haddr->v.io.offset;
> }
> }
> #endif
> --
> 2.17.1
>