2011-06-17 18:45:46 +02:00
|
|
|
# HG changeset patch
|
|
|
|
# User Ian Campbell <ian.campbell@citrix.com>
|
|
|
|
# Date 1306228450 -3600
|
|
|
|
# Node ID 23b423a3955785c9a8679c3a877c3472066a2e1f
|
|
|
|
# Parent ba8da39c67298b19c2c277e5794981b7f23bedf2
|
|
|
|
libxc: save/restore: remove static context variables
|
|
|
|
|
|
|
|
20544:ad9d75d74bd5 and 20545:cc7d66ba0dad seemingly intended to change these
|
|
|
|
global static variables into stack variables but didn't remove the static
|
|
|
|
qualifier.
|
|
|
|
|
|
|
|
Also zero the entire struct once with memset rather than clearing fields
|
|
|
|
piecemeal in two different places.
|
|
|
|
|
|
|
|
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
|
|
|
|
Acked-by: Ian Jackson <ian.jackson.citrix.com>
|
|
|
|
Committed-by: Ian Jackson <ian.jackson.citrix.com>
|
|
|
|
Acked-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
|
|
|
|
|
2012-08-10 23:38:41 +02:00
|
|
|
Index: xen-4.1.3-testing/tools/libxc/xc_domain_restore.c
|
2011-06-17 18:45:46 +02:00
|
|
|
===================================================================
|
2012-08-10 23:38:41 +02:00
|
|
|
--- xen-4.1.3-testing.orig/tools/libxc/xc_domain_restore.c
|
|
|
|
+++ xen-4.1.3-testing/tools/libxc/xc_domain_restore.c
|
|
|
|
@@ -1145,23 +1145,19 @@ int xc_domain_restore(xc_interface *xch,
|
2011-06-17 18:45:46 +02:00
|
|
|
|
|
|
|
int orig_io_fd_flags;
|
|
|
|
|
|
|
|
- static struct restore_ctx _ctx = {
|
|
|
|
- .live_p2m = NULL,
|
|
|
|
- .p2m = NULL,
|
|
|
|
- };
|
|
|
|
- static struct restore_ctx *ctx = &_ctx;
|
|
|
|
+ struct restore_ctx _ctx;
|
|
|
|
+ struct restore_ctx *ctx = &_ctx;
|
|
|
|
struct domain_info_context *dinfo = &ctx->dinfo;
|
|
|
|
|
|
|
|
pagebuf_init(&pagebuf);
|
|
|
|
memset(&tailbuf, 0, sizeof(tailbuf));
|
|
|
|
tailbuf.ishvm = hvm;
|
|
|
|
|
|
|
|
- /* For info only */
|
|
|
|
- ctx->nr_pfns = 0;
|
|
|
|
-
|
|
|
|
if ( superpages )
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
+ memset(ctx, 0, sizeof(*ctx));
|
|
|
|
+
|
|
|
|
ctxt = xc_hypercall_buffer_alloc(xch, ctxt, sizeof(*ctxt));
|
|
|
|
|
|
|
|
if ( ctxt == NULL )
|
2012-08-10 23:38:41 +02:00
|
|
|
Index: xen-4.1.3-testing/tools/libxc/xc_domain_save.c
|
2011-06-17 18:45:46 +02:00
|
|
|
===================================================================
|
2012-08-10 23:38:41 +02:00
|
|
|
--- xen-4.1.3-testing.orig/tools/libxc/xc_domain_save.c
|
|
|
|
+++ xen-4.1.3-testing/tools/libxc/xc_domain_save.c
|
2011-06-17 18:45:46 +02:00
|
|
|
@@ -958,11 +958,8 @@ int xc_domain_save(xc_interface *xch, in
|
|
|
|
unsigned long mfn;
|
|
|
|
|
|
|
|
struct outbuf ob;
|
|
|
|
- static struct save_ctx _ctx = {
|
|
|
|
- .live_p2m = NULL,
|
|
|
|
- .live_m2p = NULL,
|
|
|
|
- };
|
|
|
|
- static struct save_ctx *ctx = &_ctx;
|
|
|
|
+ struct save_ctx _ctx;
|
|
|
|
+ struct save_ctx *ctx = &_ctx;
|
|
|
|
struct domain_info_context *dinfo = &ctx->dinfo;
|
|
|
|
|
|
|
|
int completed = 0;
|
|
|
|
@@ -976,6 +973,8 @@ int xc_domain_save(xc_interface *xch, in
|
|
|
|
|
|
|
|
outbuf_init(xch, &ob, OUTBUF_SIZE);
|
|
|
|
|
|
|
|
+ memset(ctx, 0, sizeof(*ctx));
|
|
|
|
+
|
|
|
|
/* If no explicit control parameters given, use defaults */
|
|
|
|
max_iters = max_iters ? : DEF_MAX_ITERS;
|
|
|
|
max_factor = max_factor ? : DEF_MAX_FACTOR;
|