fe31f9be81
do not understand the new PV driver protocol. - Upstream Xen version renamed to 4.0.0 in changeset 20624 & 20625. - fate#307594: HP-MCBS: XEN: support NR_CPUS=256 This is a spec file change (xen.spec) - bnc#555152 - "NAME" column in xentop (SLES11) output limited to 10 characters unlike SLES10 The update to c/s 20572 includes this fix (at c/s 20567). - Modify xen-paths.diff - Merge xend-tap-fix.patch to xen-domUloader.diff remove part of it which accepted by upstream - Load gntdev module in xend init script similar to blkbk, netbk, etc. - Backport dmmd from sles11/xen block-dmmd xen-qemu-iscsi-fix.patch xen.spec - Fix regression when create_vbd for tap xend-tap-fix.patch - Temporarily disable libxl because of libconfig dependency. - fate#302864 domUloader support lvm in disk domUloader.py Note: for test in Beta1, if not good, remove it - fate#302864 domUloader support fs on whole disk domUloader.py - Turn KMPs back on now that kernel side fix is checked in. - fate#304415 VMM: ability to switch networking mode Add vif-route-ifup to handle routed configurations using sysconfig scripts. vif-route-ifup.patch - fate#307540 USB for Xen VMs usb-add.patch - fate#305545 XEN extra descriptive field within xenstore add_des.patch - Update to Xen version 3.5.0 for the following features. fate#304226 XEN: FlexMigration feature of VT-x2 support fate#305004 Add SR-IOV PF and VF drivers to Vt-d enabled Xen fate#306830 T states in Xen controlling by MSR fate#306832 Fix for xen panic on new processors fate#306833 Westmere and Nehalem-EX: Add support for Pause Loop exiting feature for Xen fate#306835 Xen: server virtual power management enhacement fate#306837 VT-d2 - PCI SIG ATS support fate#306872 Xen: Node manager support P/T-states change when Vt-d enable fate#306873 Xen: SMP guest live migration may fail with hap=1 on NHM fate#306875 Westmere: LT-SX (Xen) fate#306891 RAS features for Xen: Add support for Machine Check and CPU/Memory online/offline features fate#307322 1GB page support in Xen fate#307324 Xen IOMMU support OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=26
95 lines
3.2 KiB
Diff
95 lines
3.2 KiB
Diff
Index: xen-4.0.0-testing/xen/arch/x86/hvm/hvm.c
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/xen/arch/x86/hvm/hvm.c
|
|
+++ xen-4.0.0-testing/xen/arch/x86/hvm/hvm.c
|
|
@@ -629,11 +629,12 @@ static int hvm_load_cpu_ctxt(struct doma
|
|
return -EINVAL;
|
|
}
|
|
|
|
- if ( (ctxt.msr_efer & ~(EFER_FFXSE | EFER_LME | EFER_LMA |
|
|
+ if ( (ctxt.msr_efer & ~(EFER_FFXSE | EFER_LMSLE | EFER_LME | EFER_LMA |
|
|
EFER_NX | EFER_SCE)) ||
|
|
((sizeof(long) != 8) && (ctxt.msr_efer & EFER_LME)) ||
|
|
(!cpu_has_nx && (ctxt.msr_efer & EFER_NX)) ||
|
|
(!cpu_has_syscall && (ctxt.msr_efer & EFER_SCE)) ||
|
|
+ (!cpu_has_lmsl && (ctxt.msr_efer & EFER_LMSLE)) ||
|
|
(!cpu_has_ffxsr && (ctxt.msr_efer & EFER_FFXSE)) ||
|
|
((ctxt.msr_efer & (EFER_LME|EFER_LMA)) == EFER_LMA) )
|
|
{
|
|
@@ -984,10 +985,11 @@ int hvm_set_efer(uint64_t value)
|
|
|
|
value &= ~EFER_LMA;
|
|
|
|
- if ( (value & ~(EFER_FFXSE | EFER_LME | EFER_NX | EFER_SCE)) ||
|
|
+ if ( (value & ~(EFER_FFXSE | EFER_LMSLE | EFER_LME | EFER_NX | EFER_SCE)) ||
|
|
((sizeof(long) != 8) && (value & EFER_LME)) ||
|
|
(!cpu_has_nx && (value & EFER_NX)) ||
|
|
(!cpu_has_syscall && (value & EFER_SCE)) ||
|
|
+ (!cpu_has_lmsl && (value & EFER_LMSLE)) ||
|
|
(!cpu_has_ffxsr && (value & EFER_FFXSE)) )
|
|
{
|
|
gdprintk(XENLOG_WARNING, "Trying to set reserved bit in "
|
|
Index: xen-4.0.0-testing/xen/arch/x86/hvm/svm/svm.c
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/xen/arch/x86/hvm/svm/svm.c
|
|
+++ xen-4.0.0-testing/xen/arch/x86/hvm/svm/svm.c
|
|
@@ -56,6 +56,11 @@
|
|
|
|
u32 svm_feature_flags;
|
|
|
|
+#ifdef __x86_64__
|
|
+/* indicate whether guest may use EFER.LMSLE */
|
|
+unsigned char cpu_has_lmsl = 0;
|
|
+#endif
|
|
+
|
|
#define set_segment_register(name, value) \
|
|
asm volatile ( "movw %%ax ,%%" STR(name) "" : : "a" (value) )
|
|
|
|
@@ -840,6 +845,29 @@ static int svm_cpu_up(struct cpuinfo_x86
|
|
/* Initialize core's ASID handling. */
|
|
svm_asid_init(c);
|
|
|
|
+#ifdef __x86_64__
|
|
+ /*
|
|
+ * Check whether EFER.LMSLE can be written.
|
|
+ * Unfortunately there's no feature bit defined for this.
|
|
+ */
|
|
+ eax = read_efer();
|
|
+ edx = read_efer() >> 32;
|
|
+ if ( wrmsr_safe(MSR_EFER, eax | EFER_LMSLE, edx) == 0 )
|
|
+ rdmsr(MSR_EFER, eax, edx);
|
|
+ if ( eax & EFER_LMSLE )
|
|
+ {
|
|
+ if ( c == &boot_cpu_data )
|
|
+ cpu_has_lmsl = 1;
|
|
+ wrmsr(MSR_EFER, eax ^ EFER_LMSLE, edx);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ if ( cpu_has_lmsl )
|
|
+ printk(XENLOG_WARNING "Inconsistent LMLSE support across CPUs!\n");
|
|
+ cpu_has_lmsl = 0;
|
|
+ }
|
|
+#endif
|
|
+
|
|
return 1;
|
|
}
|
|
|
|
Index: xen-4.0.0-testing/xen/include/asm-x86/hvm/hvm.h
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/xen/include/asm-x86/hvm/hvm.h
|
|
+++ xen-4.0.0-testing/xen/include/asm-x86/hvm/hvm.h
|
|
@@ -131,6 +131,12 @@ struct hvm_function_table {
|
|
extern struct hvm_function_table hvm_funcs;
|
|
extern int hvm_enabled;
|
|
|
|
+#ifdef __i386__
|
|
+# define cpu_has_lmsl 0
|
|
+#else
|
|
+extern unsigned char cpu_has_lmsl;
|
|
+#endif
|
|
+
|
|
int hvm_domain_initialise(struct domain *d);
|
|
void hvm_domain_relinquish_resources(struct domain *d);
|
|
void hvm_domain_destroy(struct domain *d);
|