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