1b78387def
- fate#309901: Add Xen support for SVM TSC scaling in AMD family 15h - fate#311951: Ivy Bridge: XEN support for Supervisor Mode Execution Protection (SMEP) 23437-amd-fam15-TSC-scaling.patch 23462-libxc-cpu-feature.patch 23481-x86-SMEP.patch 23504-x86-SMEP-hvm.patch 23505-x86-cpu-add-arg-check.patch 23508-vmx-proc-based-ctls-probe.patch 23510-hvm-cpuid-DRNG.patch 23511-amd-fam15-no-flush-for-C3.patch 23516-cpuid-ERMS.patch 23538-hvm-pio-emul-no-host-crash.patch 23539-hvm-cpuid-FSGSBASE.patch 23543-x86_64-maddr_to_virt-assertion.patch 23546-fucomip.patch - Fix libxc reentrancy issues 23383-libxc-rm-static-vars.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=128
79 lines
2.5 KiB
Diff
79 lines
2.5 KiB
Diff
# 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>
|
|
|
|
Index: xen-4.1.1-testing/tools/libxc/xc_domain_restore.c
|
|
===================================================================
|
|
--- xen-4.1.1-testing.orig/tools/libxc/xc_domain_restore.c
|
|
+++ xen-4.1.1-testing/tools/libxc/xc_domain_restore.c
|
|
@@ -1134,23 +1134,19 @@ int xc_domain_restore(xc_interface *xch,
|
|
|
|
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 )
|
|
Index: xen-4.1.1-testing/tools/libxc/xc_domain_save.c
|
|
===================================================================
|
|
--- xen-4.1.1-testing.orig/tools/libxc/xc_domain_save.c
|
|
+++ xen-4.1.1-testing/tools/libxc/xc_domain_save.c
|
|
@@ -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;
|