fix nmi_watchdog=2 bootup hang
wrmsrl() is broken, dropping the upper 32bits of the value to be written. This broke the NMI watchdog on AMD hardware. (and it probably broke other code too.) Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
189548642c
Коммит
b9e3614f44
|
@ -539,7 +539,7 @@ static inline int paravirt_write_msr(unsigned msr, unsigned low, unsigned high)
|
|||
val = paravirt_read_msr(msr, &_err); \
|
||||
} while(0)
|
||||
|
||||
#define wrmsrl(msr,val) ((void)paravirt_write_msr(msr, val, 0))
|
||||
#define wrmsrl(msr,val) wrmsr(msr, (u32)((u64)(val)), ((u64)(val))>>32)
|
||||
#define wrmsr_safe(msr,a,b) paravirt_write_msr(msr, a, b)
|
||||
|
||||
/* rdmsr with exception handling */
|
||||
|
|
Загрузка…
Ссылка в новой задаче