msrtool: Linux /dev/cpu/*/msr returns the low 32 bits before the high 32 bits.
Thanks to Mart for spotting this! Signed-off-by: Peter Stuge <peter@stuge.se> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3920 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
a8866243d8
commit
c1d6ed9a21
|
@ -76,13 +76,16 @@ int linux_close(uint8_t cpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int linux_rdmsr(uint8_t cpu, uint32_t addr, struct msr *val) {
|
int linux_rdmsr(uint8_t cpu, uint32_t addr, struct msr *val) {
|
||||||
|
struct msr tmp;
|
||||||
if (lseek(msr_fd[cpu], addr, SEEK_SET) == -1) {
|
if (lseek(msr_fd[cpu], addr, SEEK_SET) == -1) {
|
||||||
SYSERROR(lseek, addr);
|
SYSERROR(lseek, addr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (read(msr_fd[cpu], val, 8) != 8) {
|
if (read(msr_fd[cpu], &tmp, 8) != 8) {
|
||||||
SYSERROR(read, addr);
|
SYSERROR(read, addr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
val->hi = tmp.lo;
|
||||||
|
val->lo = tmp.hi;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue