[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/4] xen: move physmap saving into a separate
From: |
Paul Durrant |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/4] xen: move physmap saving into a separate function |
Date: |
Tue, 4 Jul 2017 16:05:50 +0000 |
> -----Original Message-----
> From: Igor Druzhinin
> Sent: 04 July 2017 16:48
> To: address@hidden; address@hidden
> Cc: Igor Druzhinin <address@hidden>; address@hidden;
> Anthony Perard <address@hidden>; Paul Durrant
> <address@hidden>; address@hidden
> Subject: [PATCH v2 1/4] xen: move physmap saving into a separate function
>
> Non-functional change.
>
> Signed-off-by: Igor Druzhinin <address@hidden>
Reviewed-by: Paul Durrant <address@hidden>
> ---
> hw/i386/xen/xen-hvm.c | 57 ++++++++++++++++++++++++++++------------
> -----------
> 1 file changed, 31 insertions(+), 26 deletions(-)
>
> diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> index cffa7e2..d259cf7 100644
> --- a/hw/i386/xen/xen-hvm.c
> +++ b/hw/i386/xen/xen-hvm.c
> @@ -305,6 +305,36 @@ static hwaddr xen_phys_offset_to_gaddr(hwaddr
> start_addr,
> return start_addr;
> }
>
> +static int xen_save_physmap(XenIOState *state, XenPhysmap *physmap)
> +{
> + char path[80], value[17];
> +
> + snprintf(path, sizeof(path),
> + "/local/domain/0/device-
> model/%d/physmap/%"PRIx64"/start_addr",
> + xen_domid, (uint64_t)physmap->phys_offset);
> + snprintf(value, sizeof(value), "%"PRIx64, (uint64_t)physmap-
> >start_addr);
> + if (!xs_write(state->xenstore, 0, path, value, strlen(value))) {
> + return -1;
> + }
> + snprintf(path, sizeof(path),
> + "/local/domain/0/device-model/%d/physmap/%"PRIx64"/size",
> + xen_domid, (uint64_t)physmap->phys_offset);
> + snprintf(value, sizeof(value), "%"PRIx64, (uint64_t)physmap->size);
> + if (!xs_write(state->xenstore, 0, path, value, strlen(value))) {
> + return -1;
> + }
> + if (physmap->name) {
> + snprintf(path, sizeof(path),
> + "/local/domain/0/device-model/%d/physmap/%"PRIx64"/name",
> + xen_domid, (uint64_t)physmap->phys_offset);
> + if (!xs_write(state->xenstore, 0, path,
> + physmap->name, strlen(physmap->name))) {
> + return -1;
> + }
> + }
> + return 0;
> +}
> +
> static int xen_add_to_physmap(XenIOState *state,
> hwaddr start_addr,
> ram_addr_t size,
> @@ -316,7 +346,6 @@ static int xen_add_to_physmap(XenIOState *state,
> XenPhysmap *physmap = NULL;
> hwaddr pfn, start_gpfn;
> hwaddr phys_offset = memory_region_get_ram_addr(mr);
> - char path[80], value[17];
> const char *mr_name;
>
> if (get_physmapping(state, start_addr, size)) {
> @@ -368,31 +397,7 @@ go_physmap:
> start_addr >> TARGET_PAGE_BITS,
> (start_addr + size - 1) >>
> TARGET_PAGE_BITS,
> XEN_DOMCTL_MEM_CACHEATTR_WB);
> -
> - snprintf(path, sizeof(path),
> - "/local/domain/0/device-
> model/%d/physmap/%"PRIx64"/start_addr",
> - xen_domid, (uint64_t)phys_offset);
> - snprintf(value, sizeof(value), "%"PRIx64, (uint64_t)start_addr);
> - if (!xs_write(state->xenstore, 0, path, value, strlen(value))) {
> - return -1;
> - }
> - snprintf(path, sizeof(path),
> - "/local/domain/0/device-model/%d/physmap/%"PRIx64"/size",
> - xen_domid, (uint64_t)phys_offset);
> - snprintf(value, sizeof(value), "%"PRIx64, (uint64_t)size);
> - if (!xs_write(state->xenstore, 0, path, value, strlen(value))) {
> - return -1;
> - }
> - if (mr_name) {
> - snprintf(path, sizeof(path),
> - "/local/domain/0/device-model/%d/physmap/%"PRIx64"/name",
> - xen_domid, (uint64_t)phys_offset);
> - if (!xs_write(state->xenstore, 0, path, mr_name, strlen(mr_name))) {
> - return -1;
> - }
> - }
> -
> - return 0;
> + return xen_save_physmap(state, physmap);
> }
>
> static int xen_remove_from_physmap(XenIOState *state,
> --
> 2.7.4