aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/ia64/aliasing.txt
diff options
context:
space:
mode:
authorAlex Chiang <achiang@hp.com>2007-07-11 13:02:15 -0400
committerTony Luck <tony.luck@intel.com>2007-07-11 14:34:49 -0400
commit012b7105cc816fb797eb1c161cdfc0052b5c3f53 (patch)
tree084ede189a3284c17f09ea68d0d4573d95e7499f /Documentation/ia64/aliasing.txt
parent9e121327b37b751ef66e6f57e2d02dd568955148 (diff)
[IA64] prevent MCA when performing MMIO mmap to PCI config space
Example memory map (HP rx7640 with 'default' acpiconfig setting, VGA disabled): 0x00000000 - 0x3FFFBFFF supports only WB (cacheable) access If a user attempts to perform an MMIO mmap (using the PCIIOC_MMAP_IS_MEM ioctl) to PCI config space (like mmap'ing and accessing memory at 0xA0000), we will MCA because the kernel will attempt to use a mapping with the UC attribute. So check the memory attribute in kern_mmap and the EFI memmap. If WC is requested, and WC or UC access is supported for the region, allow it. Otherwise, use the same attribute the kernel uses. Updates documentation and test cases as well. Signed-off-by: Alex Chiang <achiang@hp.com> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'Documentation/ia64/aliasing.txt')
-rw-r--r--Documentation/ia64/aliasing.txt12
1 files changed, 12 insertions, 0 deletions
diff --git a/Documentation/ia64/aliasing.txt b/Documentation/ia64/aliasing.txt
index 9a431a7d0f5d..aa3e953f0f7b 100644
--- a/Documentation/ia64/aliasing.txt
+++ b/Documentation/ia64/aliasing.txt
@@ -112,6 +112,18 @@ POTENTIAL ATTRIBUTE ALIASING CASES
112 112
113 The /dev/mem mmap constraints apply. 113 The /dev/mem mmap constraints apply.
114 114
115 mmap of /proc/bus/pci/.../??.?
116
117 This is an MMIO mmap of PCI functions, which additionally may or
118 may not be requested as using the WC attribute.
119
120 If WC is requested, and the region in kern_memmap is either WC
121 or UC, and the EFI memory map designates the region as WC, then
122 the WC mapping is allowed.
123
124 Otherwise, the user mapping must use the same attribute as the
125 kernel mapping.
126
115 read/write of /dev/mem 127 read/write of /dev/mem
116 128
117 This uses copy_from_user(), which implicitly uses a kernel 129 This uses copy_from_user(), which implicitly uses a kernel