Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
"Two fixes: a quirk for KVM guests running on certain AMD CPUs, and a
KASAN related build fix"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor
x86/boot: Provide KASAN compatible aliases for string routines

Changed files
+15 -6
arch
x86
boot
compressed
kernel
cpu
+10 -4
arch/x86/boot/compressed/string.c
··· 11 #include "../string.c" 12 13 #ifdef CONFIG_X86_32 14 - static void *__memcpy(void *dest, const void *src, size_t n) 15 { 16 int d0, d1, d2; 17 asm volatile( ··· 25 return dest; 26 } 27 #else 28 - static void *__memcpy(void *dest, const void *src, size_t n) 29 { 30 long d0, d1, d2; 31 asm volatile( ··· 56 const unsigned char *s = src; 57 58 if (d <= s || d - s >= n) 59 - return __memcpy(dest, src, n); 60 61 while (n-- > 0) 62 d[n] = s[n]; ··· 71 warn("Avoiding potentially unsafe overlapping memcpy()!"); 72 return memmove(dest, src, n); 73 } 74 - return __memcpy(dest, src, n); 75 }
··· 11 #include "../string.c" 12 13 #ifdef CONFIG_X86_32 14 + static void *____memcpy(void *dest, const void *src, size_t n) 15 { 16 int d0, d1, d2; 17 asm volatile( ··· 25 return dest; 26 } 27 #else 28 + static void *____memcpy(void *dest, const void *src, size_t n) 29 { 30 long d0, d1, d2; 31 asm volatile( ··· 56 const unsigned char *s = src; 57 58 if (d <= s || d - s >= n) 59 + return ____memcpy(dest, src, n); 60 61 while (n-- > 0) 62 d[n] = s[n]; ··· 71 warn("Avoiding potentially unsafe overlapping memcpy()!"); 72 return memmove(dest, src, n); 73 } 74 + return ____memcpy(dest, src, n); 75 } 76 + 77 + #ifdef CONFIG_KASAN 78 + extern void *__memset(void *s, int c, size_t n) __alias(memset); 79 + extern void *__memmove(void *dest, const void *src, size_t n) __alias(memmove); 80 + extern void *__memcpy(void *dest, const void *src, size_t n) __alias(memcpy); 81 + #endif
+5 -2
arch/x86/kernel/cpu/amd.c
··· 824 { 825 set_cpu_cap(c, X86_FEATURE_ZEN); 826 827 - /* Fix erratum 1076: CPB feature bit not being set in CPUID. */ 828 - if (!cpu_has(c, X86_FEATURE_CPB)) 829 set_cpu_cap(c, X86_FEATURE_CPB); 830 } 831
··· 824 { 825 set_cpu_cap(c, X86_FEATURE_ZEN); 826 827 + /* 828 + * Fix erratum 1076: CPB feature bit not being set in CPUID. 829 + * Always set it, except when running under a hypervisor. 830 + */ 831 + if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && !cpu_has(c, X86_FEATURE_CPB)) 832 set_cpu_cap(c, X86_FEATURE_CPB); 833 } 834