linux-uconsole/arch
Yazen Ghannam d608079459 x86/smpboot: Don't use mwait_play_dead() on AMD systems
commit da6fa7ef67 upstream.

Recent AMD systems support using MWAIT for C1 state. However, MWAIT will
not allow deeper cstates than C1 on current systems.

play_dead() expects to use the deepest state available.  The deepest state
available on AMD systems is reached through SystemIO or HALT. If MWAIT is
available, it is preferred over the other methods, so the CPU never reaches
the deepest possible state.

Don't try to use MWAIT to play_dead() on AMD systems. Instead, use CPUIDLE
to enter the deepest state advertised by firmware. If CPUIDLE is not
available then fallback to HALT.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Borislav Petkov <bp@suse.de>
Cc: stable@vger.kernel.org
Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>
Link: https://lkml.kernel.org/r/20180403140228.58540-1-Yazen.Ghannam@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-02 07:53:43 -07:00
..
alpha vgacon: Set VGA struct resource types 2018-03-24 10:58:48 +01:00
arc ARC: uaccess: dont use "l" gcc inline asm constraint modifier 2018-01-10 09:27:11 +01:00
arm ARM: dts: at91: sama5d4: fix pinctrl compatible string 2018-04-24 09:32:05 +02:00
arm64 arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage 2018-04-13 19:50:15 +02:00
avr32 avr32: off by one in at32_init_pio() 2016-10-07 15:23:45 +02:00
blackfin pinctrl: adi2: Fix Kconfig build problem 2017-12-20 10:05:00 +01:00
c6x c6x/ptrace: Remove useless PTRACE_SETREGSET implementation 2017-03-31 09:49:53 +02:00
cris cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected 2017-01-12 11:22:48 +01:00
frv frv: declare jiffies to be located in the .data section 2018-04-08 11:51:57 +02:00
h8300 h8300/ptrace: Fix incorrect register transfer count 2017-03-31 09:49:53 +02:00
hexagon hexagon: fix strncpy_from_user() error return 2016-09-24 10:07:44 +02:00
ia64 ia64: fix module loading for gcc-5.4 2018-03-24 10:58:45 +01:00
m32r m32r: fix __get_user() 2016-09-24 10:07:43 +02:00
m68k m68k: Fix ndelay() macro 2016-12-15 08:49:23 -08:00
metag metag/uaccess: Check access_ok in strncpy_from_user 2017-05-25 14:30:16 +02:00
microblaze microblaze: fix copy_from_user() 2016-09-24 10:07:43 +02:00
mips MIPS: memset.S: Fix clobber of v1 in last_fixup 2018-04-24 09:32:10 +02:00
mn10300 mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy 2018-02-16 20:09:47 +01:00
nios2 nios2: reserve boot memory for device tree 2017-04-12 12:38:34 +02:00
openrisc signal/openrisc: Fix do_unaligned_access to send the proper signal 2018-02-16 20:09:46 +01:00
parisc parisc: Fix out of array access in match_pci_device() 2018-04-24 09:32:03 +02:00
powerpc powerpc/lib: Fix off-by-one in alternate feature patching 2018-04-24 09:32:11 +02:00
s390 s390/uprobes: implement arch_uretprobe_is_alive() 2018-04-29 07:50:07 +02:00
score score: fix copy_from_user() and friends 2016-09-24 10:07:44 +02:00
sh SolutionEngine771x: fix Ether platform data 2018-03-03 10:19:45 +01:00
sparc sparc64: ldc abort during vds iso boot 2018-04-13 19:50:20 +02:00
tile mm: larger stack guard gap, between vmas 2017-06-26 07:13:11 +02:00
um um: Use POSIX ucontext_t instead of struct ucontext 2018-04-24 09:32:08 +02:00
unicore32 pwm: Changes for v4.4-rc1 2015-11-11 09:16:10 -08:00
x86 x86/smpboot: Don't use mwait_play_dead() on AMD systems 2018-05-02 07:53:43 -07:00
xtensa xtensa: fix futex_atomic_cmpxchg_inatomic 2018-02-16 20:09:47 +01:00
.gitignore
Kconfig