x86 fixes
Subsystems (5)
Linus,
Please pull the latest x86-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus
# HEAD: 8d7c6ac3b2371eb1cbc9925a88f4d10efff374de x86/cpu: Add Comet Lake to the Intel CPU models header
A handful of fixes: a kexec linking fix, an AMD MWAITX fix, a vmware guest support fix when built under Clang, and new CPU model number definitions.
out-of-topic modifications in x86-urgent-for-linus:
-----------------------------------------------------
include/linux/string.h # bec500777089: lib/string: Make memzero_exp
lib/string.c # bec500777089: lib/string: Make memzero_exp
Thanks,
Ingo
------------------>
Arvind Sankar (1):
lib/string: Make memzero_explicit() inline instead of external
Janakarajan Natarajan (1):
x86/asm: Fix MWAITX C-state hint value
Kan Liang (1):
x86/cpu: Add Comet Lake to the Intel CPU models header
Sami Tolvanen (1):
x86/cpu/vmware: Use the full form of INL in VMWARE_PORT
arch/x86/include/asm/intel-family.h | 3 +++ arch/x86/include/asm/mwait.h | 2 +- arch/x86/kernel/cpu/vmware.c | 2 +- arch/x86/lib/delay.c | 4 ++-- include/linux/string.h | 21 ++++++++++++++++++++- lib/string.c | 21 --------------------- 6 files changed, 27 insertions(+), 26 deletions(-)
arch/x86/include/asm/intel-family.h +3 -0
@@ -83,6 +83,9 @@#define INTEL_FAM6_TIGERLAKE_L 0x8C#define INTEL_FAM6_TIGERLAKE 0x8D +#define INTEL_FAM6_COMETLAKE 0xA5 +#define INTEL_FAM6_COMETLAKE_L 0xA6 +/* "Small Core" Processors (Atom) */ #define INTEL_FAM6_ATOM_BONNELL 0x1C/* Diamondville, Pineview */
arch/x86/include/asm/mwait.h +1 -1
@@ -21,7 +21,7 @@#define MWAIT_ECX_INTERRUPT_BREAK 0x1#define MWAITX_ECX_TIMER_ENABLE BIT(1)#define MWAITX_MAX_LOOPS ((u32)-1) -#define MWAITX_DISABLE_CSTATES 0xf +#define MWAITX_DISABLE_CSTATES 0xf0static inline void __monitor (const void *eax,unsigned long ecx,unsigned long edx)
arch/x86/kernel/cpu/vmware.c +1 -1
@@ -49,7 +49,7 @@#define VMWARE_CMD_VCPU_RESERVED 31#define VMWARE_PORT (cmd, eax, ebx, ecx, edx) \ - __asm__("inl (%%dx)" : \ + __asm__("inl (%%dx), %%eax" : \ "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \ "a"(VMWARE_HYPERVISOR_MAGIC), \ "c"(VMWARE_CMD_##cmd), \
arch/x86/lib/delay.c +2 -2
@@ -113,8 +113,8 @@ static void delay_mwaitx(unsigned long __loops)__monitorx (raw_cpu_ptr (&cpu_tss_rw),0 ,0 );/* -* AMD, like Intel, supports the EAX hint and EAX=0xf -* means, do not enter any deep C-state and we use it +* AMD, like Intel's MWAIT version, supports the EAX hint and +* EAX=0xf0 means, do not enter any deep C-state and we use it * here in delay() to minimize wakeup latency. */ __mwaitx (MWAITX_DISABLE_CSTATES , delay,MWAITX_ECX_TIMER_ENABLE );
include/linux/string.h +20 -1
@@ -227,7 +227,26 @@ static inline bool strstarts(const char *str, const char *prefix) }size_t memweight (const void *ptr,size_t bytes); -void memzero_explicit (void *s,size_t count); + +/** +* memzero_explicit - Fill a region of memory (e.g. sensitive +* keying data) with 0s. +* @s: Pointer to the start of the area. +* @count: The size of the area. +* +* Note: usually using memset() is just fine (!), but in cases +* where clearing out _local_ data at the end of a scope is +* necessary, memzero_explicit() should be used instead in +* order to prevent the compiler from optimising away zeroing. +* +* memzero_explicit() doesn't need an arch-specific version as +* it just invokes the one of memset() implicitly. +*/ +static inline void memzero_explicit (void *s,size_t count) +{ +memset (s,0 , count); +barrier_data (s); +}/** * kbasename - return the last part of a pathname.
lib/string.c +0 -21
@@ -748,27 +748,6 @@ void *memset(void *s, int c, size_t count)EXPORT_SYMBOL (memset);#endif -/** -* memzero_explicit - Fill a region of memory (e.g. sensitive -* keying data) with 0s. -* @s: Pointer to the start of the area. -* @count: The size of the area. -* -* Note: usually using memset() is just fine (!), but in cases -* where clearing out _local_ data at the end of a scope is -* necessary, memzero_explicit() should be used instead in -* order to prevent the compiler from optimising away zeroing. -* -* memzero_explicit() doesn't need an arch-specific version as -* it just invokes the one of memset() implicitly. -*/ -void memzero_explicit (void *s,size_t count) -{ -memset (s,0 , count); -barrier_data (s); -} -EXPORT_SYMBOL (memzero_explicit); -#ifndef __HAVE_ARCH_MEMSET16/** * memset16() - Fill a memory area with a uint16_t
The pull request you sent on Sat, 12 Oct 2019 15:19:16 +0200:
The pull request you sent on Sat, 12 Oct 2019 15:19:16 +0200:
Quoted 1 line
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.gitx86-urgent-for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/7a275fd7b9519b5cc63270a8964055aadb04de26
Thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.wiki.kernel.org/userdoc/prtracker