diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-08-25 22:39:15 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-08-25 22:39:15 -0700 |
commit | 08970fc4e0385790a7b093adfaa4165a189f9eb0 (patch) | |
tree | 9a7ca00d88f64ba69abb3cc1cb7a4a803033b12a /arch/x86/kernel/cpuid.c | |
parent | 9ea2b82ed6265a31f9a84886d74d8a2ef01b27c8 (diff) | |
download | linux-stable-08970fc4e0385790a7b093adfaa4165a189f9eb0.tar.gz linux-stable-08970fc4e0385790a7b093adfaa4165a189f9eb0.tar.bz2 linux-stable-08970fc4e0385790a7b093adfaa4165a189f9eb0.zip |
x86: msr: fix bogus return values from rdmsr_safe/wrmsr_safe
Impact: bogus error codes (+other?) on x86-64
The rdmsr_safe/wrmsr_safe routines have macros for the handling of the
edx:eax arguments. Those macros take a variable number of assembly
arguments. This is rather inherently incompatible with using
%digit-style escapes in the inline assembly; replace those with
%[name]-style escapes.
This fixes miscompilation on x86-64, which at the very least caused
bogus return values. It is possible that this could also corrupt the
return value; I am not sure.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel/cpuid.c')
0 files changed, 0 insertions, 0 deletions