34 lines
1.2 KiB
Diff
34 lines
1.2 KiB
Diff
|
# HG changeset patch
|
||
|
# User Boris Ostrovsky <boris.ostrovsky@amd.com>
|
||
|
# Date 1317976335 -7200
|
||
|
# Node ID 08d6ba4e447d6c13c6dfac5c23e84b73961cb109
|
||
|
# Parent 159be83e5fe9111bb30d8b1f83127f5724d44424
|
||
|
x86/AMD: Do not enable ARAT feature on AMD processors below family 0x12
|
||
|
|
||
|
Determining whether an AMD processor is affected by erratum 400 may
|
||
|
have some corner cases and handling these cases is somewhat complicated.
|
||
|
In the interest of simplicity we won't claim ARAT support on processor
|
||
|
families below 0x12.
|
||
|
|
||
|
Mirrors Linux commit e9cdd343a5e42c43bcda01e609fa23089e026470
|
||
|
|
||
|
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
|
||
|
Committed-by: Jan Beulich <jbeulich@suse.com>
|
||
|
|
||
|
--- a/xen/arch/x86/cpu/amd.c
|
||
|
+++ b/xen/arch/x86/cpu/amd.c
|
||
|
@@ -632,8 +632,11 @@ static void __devinit init_amd(struct cp
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
- /* As a rule processors have APIC timer running in deep C states */
|
||
|
- if (c->x86 > 0xf && !cpu_has_amd_erratum(c, AMD_ERRATUM_400))
|
||
|
+ /*
|
||
|
+ * Family 0x12 and above processors have APIC timer
|
||
|
+ * running in deep C states.
|
||
|
+ */
|
||
|
+ if (c->x86 > 0x11)
|
||
|
set_bit(X86_FEATURE_ARAT, c->x86_capability);
|
||
|
|
||
|
/* Prevent TSC drift in non single-processor, single-core platforms. */
|