| |
| Legacy hypervisors (RHEL 5.0 and RHEL 5.1) do not handle guest writes to |
| cr4 gracefully. If a guest attempts to write a bit of cr4 that is |
| unsupported, then the HV is so offended it crashes the domain. While |
| later guest kernels (such as RHEL6) don't assume the HV supports all |
| features, they do expect nicer responses. That assumption introduced |
| code that probes whether or not xsave is supported early in the boot. So |
| now when attempting to boot a RHEL6 guest on RHEL5.0 or RHEL5.1 an early |
| crash will occur. |
| |
| This patch is quite obviously an undesirable hack. The real fix for this |
| problem should be in the HV, and is, in later HVs. However, to support |
| running on old HVs, RHEL6 can take this small change. No impact will |
| occur for running on any RHEL HV (not even RHEL 5.5 supports xsave). |
| There is only potential for guest performance loss on upstream Xen. |
| |
| |
| arch/x86/xen/enlighten.c | 1 + |
| 1 files changed, 1 insertions(+), 0 deletions(-) |
| |
| diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c |
| index 52f8e19..6db3d67 100644 |
| |
| |
| @@ -802,6 +802,7 @@ static void xen_write_cr4(unsigned long cr4) |
| { |
| cr4 &= ~X86_CR4_PGE; |
| cr4 &= ~X86_CR4_PSE; |
| + cr4 &= ~X86_CR4_OSXSAVE; |
| |
| native_write_cr4(cr4); |
| } |
| -- |
| 1.6.6.1 |