summaryrefslogtreecommitdiffstats
path: root/include/asm-s390
diff options
context:
space:
mode:
authorBjorn Helgaas2006-01-08 10:04:13 +0100
committerLinus Torvalds2006-01-09 05:14:02 +0100
commit80851ef2a5a404e6054211ca96ecd5ac4b06d297 (patch)
treedcacd2a475adc28c540b6012b58f1af9783778c1 /include/asm-s390
parent[PATCH] /dev/mem __HAVE_PHYS_MEM_ACCESS_PROT tidy-up (diff)
downloadkernel-qcow2-linux-80851ef2a5a404e6054211ca96ecd5ac4b06d297.tar.gz
kernel-qcow2-linux-80851ef2a5a404e6054211ca96ecd5ac4b06d297.tar.xz
kernel-qcow2-linux-80851ef2a5a404e6054211ca96ecd5ac4b06d297.zip
[PATCH] /dev/mem: validate mmap requests
Add a hook so architectures can validate /dev/mem mmap requests. This is analogous to validation we already perform in the read/write paths. The identity mapping scheme used on ia64 requires that each 16MB or 64MB granule be accessed with exactly one attribute (write-back or uncacheable). This avoids "attribute aliasing", which can cause a machine check. Sample problem scenario: - Machine supports VGA, so it has uncacheable (UC) MMIO at 640K-768K - efi_memmap_init() discards any write-back (WB) memory in the first granule - Application (e.g., "hwinfo") mmaps /dev/mem, offset 0 - hwinfo receives UC mapping (the default, since memmap says "no WB here") - Machine check abort (on chipsets that don't support UC access to WB memory, e.g., sx1000) In the scenario above, the only choices are - Use WB for hwinfo mmap. Can't do this because it causes attribute aliasing with the UC mapping for the VGA MMIO space. - Use UC for hwinfo mmap. Can't do this because the chipset may not support UC for that region. - Disallow the hwinfo mmap with -EINVAL. That's what this patch does. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Hugh Dickins <hugh@veritas.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-s390')
0 files changed, 0 insertions, 0 deletions