linux/arch/ia64/kernel
Bjorn Helgaas 80851ef2a5 [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>
2006-01-08 20:14:02 -08:00
..
cpufreq
acpi-ext.c
acpi.c
asm-offsets.c
brl_emu.c
cyclone.c
efi_stub.S
efi.c [PATCH] /dev/mem: validate mmap requests 2006-01-08 20:14:02 -08:00
entry.h
entry.S [PATCH] Swap Migration V5: sys_migrate_pages interface 2006-01-08 20:12:42 -08:00
fsys.S
gate-data.S
gate.lds.S
gate.S
head.S [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
ia64_ksyms.c [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
init_task.c
iosapic.c
irq_ia64.c
irq_lsapic.c
irq.c
ivt.S [IA64] polish comments for tlb fault handler in ivt.S 2005-11-17 09:48:15 -08:00
jprobes.S
kprobes.c [PATCH] kprobes: increment kprobe missed count for multiprobes 2005-12-12 08:57:45 -08:00
machvec.c
Makefile
mca_asm.S
mca_drv_asm.S
mca_drv.c Pull mca-check-psp into release branch 2005-11-10 10:38:05 -08:00
mca_drv.h
mca.c
minstate.h
module.c
numa.c
pal.S
palinfo.c
patch.c
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon.c
process.c [IA64] fix for SET_PERSONALITY when CONFIG_IA32_SUPPORT is not set. 2005-12-14 08:52:57 -08:00
ptrace.c [PATCH] use ptrace_get_task_struct in various places 2006-01-08 20:13:51 -08:00
sal.c
salinfo.c [IA64] Allow salinfo_decode to detect signals on read 2005-12-05 11:49:17 -08:00
semaphore.c
setup.c [IA64] Fix compile warnings in setup.c 2006-01-05 13:30:52 -08:00
sigframe.h
signal.c
smp.c
smpboot.c
sys_ia64.c
time.c [IA64] disable preemption in udelay() 2005-12-16 10:00:24 -08:00
topology.c
traps.c [IA64] Remove getting break_num by decoding instruction 2005-11-29 09:24:39 -08:00
unaligned.c
uncached.c [IA64] uncached ref count leak 2005-12-16 10:29:52 -08:00
unwind_decoder.c
unwind_i.h
unwind.c
vmlinux.lds.S [IA64] Add __read_mostly support for IA64 2005-12-16 10:52:46 -08:00