diff options
| author | H. Peter Anvin <[email protected]> | 2008-08-26 05:39:15 +0000 |
|---|---|---|
| committer | H. Peter Anvin <[email protected]> | 2008-08-26 05:39:15 +0000 |
| commit | 08970fc4e0385790a7b093adfaa4165a189f9eb0 (patch) | |
| tree | 9a7ca00d88f64ba69abb3cc1cb7a4a803033b12a /lib/debugobjects.c | |
| parent | x86: cpuid: correct return value on partial operations (diff) | |
| download | kernel-08970fc4e0385790a7b093adfaa4165a189f9eb0.tar.gz kernel-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 <[email protected]>
Diffstat (limited to 'lib/debugobjects.c')
0 files changed, 0 insertions, 0 deletions
