|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/HVM: fixed _hvm_hw_fix_cpu()
# HG changeset patch
# User Razvan Cojocaru <rzvncj@xxxxxxxxx>
# Date 1359036499 -3600
# Node ID e0b21f16be125ec67c288dc01c09d6312bc82a3c
# Parent e7de3330b64cc66cd559d9b570a84a421cd99b44
x86/HVM: fixed _hvm_hw_fix_cpu()
Prevent the compiler from re-ordering the reads and writes.
Suggested by Jan Beulich.
Signed-off-by: Razvan Cojocaru <rzvncj@xxxxxxxxx>
Acked-by: Tim Deegan <tim@xxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
Committed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
diff -r e7de3330b64c -r e0b21f16be12 xen/include/public/arch-x86/hvm/save.h
--- a/xen/include/public/arch-x86/hvm/save.h Thu Jan 24 14:49:14 2013 +0100
+++ b/xen/include/public/arch-x86/hvm/save.h Thu Jan 24 15:08:19 2013 +0100
@@ -269,15 +269,18 @@ struct hvm_hw_cpu_compat {
};
static inline int _hvm_hw_fix_cpu(void *h) {
- struct hvm_hw_cpu *new=h;
- struct hvm_hw_cpu_compat *old=h;
+
+ union hvm_hw_cpu_union {
+ struct hvm_hw_cpu nat;
+ struct hvm_hw_cpu_compat cmp;
+ } *ucpu = (union hvm_hw_cpu_union *)h;
/* If we copy from the end backwards, we should
* be able to do the modification in-place */
- new->error_code=old->error_code;
- new->pending_event=old->pending_event;
- new->tsc=old->tsc;
- new->msr_tsc_aux=0;
+ ucpu->nat.error_code = ucpu->cmp.error_code;
+ ucpu->nat.pending_event = ucpu->cmp.pending_event;
+ ucpu->nat.tsc = ucpu->cmp.tsc;
+ ucpu->nat.msr_tsc_aux = 0;
return 0;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |