]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] i386: Enable support for fixed-range IORRs to keep RdMem & WrMem in sync
authorBernhard Kaindl <bk@suse.de>
Wed, 2 May 2007 17:27:17 +0000 (19:27 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Wed, 2 May 2007 17:27:17 +0000 (19:27 +0200)
commitc667573b06edc07f1c7eb30c16015b8f7b45ba46
treeaabb457fda132a7d88e771427aa3da04c7944d4b
parent811645453bab71716f1ed0be9ff781384a67b99b
[PATCH] i386: Enable support for fixed-range IORRs to keep RdMem & WrMem in sync

If our copy of the MTRRs of the BSP has RdMem or WrMem set, and
we are running on an AMD64/K8 system, the boot CPU must have had
MtrrFixDramEn and MtrrFixDramModEn set (otherwise our RDMSR would
have copied these bits cleared), so we set them on this CPU as well.

This allows us to keep the AMD64/K8 RdMem and WrMem bits in sync
across the CPUs of SMP systems in order to fullfill the duty of
system software to "initialize and maintain MTRR consistency
across all processors." as written in the AMD and Intel manuals.

If an WRMSR instruction fails because MtrrFixDramModEn is not
set, I expect that also the Intel-style MTRR bits are not updated.

AK: minor cleanup, moved MSR defines around

Signed-off-by: Bernhard Kaindl <bk@suse.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andi Kleen <ak@suse.de>
Cc: Dave Jones <davej@codemonkey.org.uk>
arch/i386/kernel/cpu/mtrr/generic.c
include/asm-i386/msr-index.h