|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH Remus v1 5/8] tools/libxc: defer the setting of HVM_PARAM_IDENT_PT
Set the hvm param HVM_PARAM_IDENT_PT second time will fail.
So defer the setting of HVM_PARAM_IDENT_PT.
Signed-off-by: Yang Hongyang <yanghy@xxxxxxxxxxxxxx>
---
tools/libxc/xc_sr_common.h | 3 +++
tools/libxc/xc_sr_restore_x86_hvm.c | 16 ++++++++++++++++
2 files changed, 19 insertions(+)
diff --git a/tools/libxc/xc_sr_common.h b/tools/libxc/xc_sr_common.h
index 6f099b8..f85eb41 100644
--- a/tools/libxc/xc_sr_common.h
+++ b/tools/libxc/xc_sr_common.h
@@ -280,6 +280,9 @@ struct xc_sr_context
void *context;
size_t contextsz;
+ /* HVM_PARAM_IDENT_PT */
+ xen_pfn_t ident_pt;
+
#ifdef XG_LIBXL_HVM_COMPAT
uint32_t qlen;
void *qbuf;
diff --git a/tools/libxc/xc_sr_restore_x86_hvm.c
b/tools/libxc/xc_sr_restore_x86_hvm.c
index 6f5af0e..929bee8 100644
--- a/tools/libxc/xc_sr_restore_x86_hvm.c
+++ b/tools/libxc/xc_sr_restore_x86_hvm.c
@@ -76,6 +76,14 @@ static int handle_hvm_params(struct xc_sr_context *ctx,
ctx->restore.xenstore_gfn = entry->value;
xc_clear_domain_page(xch, ctx->domid, entry->value);
break;
+ case HVM_PARAM_IDENT_PT:
+ /*
+ * With Remus, we need to buffer this param because this
+ * can not be set multiple times, we will set this param
+ * at x86_hvm_stream_complete()
+ */
+ ctx->x86_hvm.restore.ident_pt = entry->value;
+ continue;
case HVM_PARAM_IOREQ_PFN:
case HVM_PARAM_BUFIOREQ_PFN:
xc_clear_domain_page(xch, ctx->domid, entry->value);
@@ -278,6 +286,14 @@ static int x86_hvm_stream_complete(struct xc_sr_context
*ctx)
xc_interface *xch = ctx->xch;
int rc;
+ rc = xc_hvm_param_set(xch, ctx->domid, HVM_PARAM_IDENT_PT,
+ ctx->x86_hvm.restore.ident_pt);
+ if ( rc )
+ {
+ PERROR("Failed to set HVM_PARAM_IDENT_PT");
+ return rc;
+ }
+
rc = xc_hvm_param_set(xch, ctx->domid, HVM_PARAM_STORE_EVTCHN,
ctx->restore.xenstore_evtchn);
if ( rc )
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |