|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] We need to do sync when mov_to_cr3 to a value already sh
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 73d19afe543c271ec61169a224b007537b4be4cd
# Parent b6dfdbeb2780d771fda70c353268775aaf1b270e
We need to do sync when mov_to_cr3 to a value already shadowed.
The L2 page and already shadowed L1 page may be out of sync.
This fixes the problems of segmentation faults and strange prints
when booting Redhat FC3 and make kernel in FC3 in VMX domain.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx>
diff -r b6dfdbeb2780 -r 73d19afe543c xen/arch/x86/shadow.c
--- a/xen/arch/x86/shadow.c Wed Nov 30 11:13:53 2005
+++ b/xen/arch/x86/shadow.c Wed Nov 30 11:16:35 2005
@@ -2154,7 +2154,8 @@
#elif CONFIG_PAGING_LEVELS == 4
smfn = shadow_l4_table(d, gpfn, gmfn);
#endif
- }
+ }else
+ shadow_sync_all(d);
if ( !get_shadow_ref(smfn) )
BUG();
old_smfn = pagetable_get_pfn(v->arch.shadow_table);
diff -r b6dfdbeb2780 -r 73d19afe543c xen/arch/x86/shadow32.c
--- a/xen/arch/x86/shadow32.c Wed Nov 30 11:13:53 2005
+++ b/xen/arch/x86/shadow32.c Wed Nov 30 11:16:35 2005
@@ -2911,6 +2911,8 @@
*/
if ( unlikely(!(smfn = __shadow_status(d, gpfn, PGT_base_page_table))) )
smfn = shadow_l2_table(d, gpfn, gmfn);
+ else
+ shadow_sync_all(d);
if ( !get_shadow_ref(smfn) )
BUG();
old_smfn = pagetable_get_pfn(v->arch.shadow_table);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] We need to do sync when mov_to_cr3 to a value already shadowed.,
Xen patchbot -unstable <=
|
|
|
|
|