|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 14/17] xen: Add xen_mr_is_memory()
On Tue, 30 Apr 2024, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@xxxxxxx>
>
> Add xen_mr_is_memory() to abstract away tests for the
> xen_memory MR.
>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xxxxxxx>
There is an important change in this patch below
> ---
> hw/xen/xen-hvm-common.c | 8 +++++++-
> include/sysemu/xen.h | 8 ++++++++
> system/physmem.c | 2 +-
> 3 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
> index 1627da7398..0267b88d26 100644
> --- a/hw/xen/xen-hvm-common.c
> +++ b/hw/xen/xen-hvm-common.c
> @@ -12,6 +12,12 @@
>
> MemoryRegion xen_memory;
>
> +/* Check for xen memory. */
> +bool xen_mr_is_memory(MemoryRegion *mr)
> +{
> + return mr == &xen_memory;
> +}
> +
> void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, MemoryRegion *mr,
> Error **errp)
> {
> @@ -28,7 +34,7 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
> MemoryRegion *mr,
> return;
> }
>
> - if (mr == &xen_memory) {
> + if (xen_mr_is_memory(mr)) {
> return;
> }
>
> diff --git a/include/sysemu/xen.h b/include/sysemu/xen.h
> index 754ec2e6cb..dc72f83bcb 100644
> --- a/include/sysemu/xen.h
> +++ b/include/sysemu/xen.h
> @@ -34,6 +34,8 @@ void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t
> length);
> void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
> struct MemoryRegion *mr, Error **errp);
>
> +bool xen_mr_is_memory(MemoryRegion *mr);
> +
> #else /* !CONFIG_XEN_IS_POSSIBLE */
>
> #define xen_enabled() 0
> @@ -47,6 +49,12 @@ static inline void xen_ram_alloc(ram_addr_t ram_addr,
> ram_addr_t size,
> g_assert_not_reached();
> }
>
> +static inline bool xen_mr_is_memory(MemoryRegion *mr)
> +{
> + g_assert_not_reached();
> + return false;
> +}
> +
> #endif /* CONFIG_XEN_IS_POSSIBLE */
>
> #endif
> diff --git a/system/physmem.c b/system/physmem.c
> index ad7a8c7d95..1a5ffcba2a 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -2227,7 +2227,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block,
> ram_addr_t addr,
> * because we don't want to map the entire memory in QEMU.
> * In that case just map the requested area.
> */
> - if (block->offset == 0) {
> + if (xen_mr_is_memory(block->mr)) {
This changes this check from block->offset == 0 to block->mr ==
&xen_memory. I think that's correct in all cases (x86 machines, ARM
machines) but I wanted to highlight it.
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> return xen_map_cache(block->mr, addr, len, lock, lock,
> is_write);
> }
> --
> 2.40.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |