kernel-ark/include/asm-ia64
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
..
sn
a.out.h
acpi-ext.h
acpi.h
agp.h
asmmacro.h
atomic.h [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
auxvec.h
bitops.h [FLS64]: generic version 2006-01-03 13:11:06 -08:00
break.h
bug.h [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
bugs.h
byteorder.h
cache.h [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
cacheflush.h
checksum.h
compat.h
cpu.h
cputime.h
current.h
cyclone.h
delay.h [IA64] disable preemption in udelay() 2005-12-16 10:00:24 -08:00
div64.h
dma-mapping.h
dma.h
elf.h
emergency-restart.h
errno.h
fcntl.h
fpswa.h
fpu.h
futex.h [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
gcc_intrin.h
hardirq.h
hw_irq.h
ia32.h [IA64] Change SET_PERSONALITY to comply with comment in binfmt_elf.c. 2005-12-06 09:12:34 -08:00
ia64regs.h
ide.h
intel_intrin.h
intrinsics.h
io.h [PATCH] /dev/mem: validate mmap requests 2006-01-08 20:14:02 -08:00
ioctl.h
ioctls.h
iosapic.h
ipcbuf.h
irq.h
kdebug.h
kmap_types.h
kprobes.h
kregs.h
linkage.h
local.h [IA64] Fix missing parameter for local_add/sub 2005-12-07 11:30:11 -08:00
machvec_dig.h
machvec_hpsim.h
machvec_hpzx1_swiotlb.h
machvec_hpzx1.h
machvec_init.h
machvec_sn2.h
machvec.h
mc146818rtc.h
mca_asm.h
mca.h
meminit.h
mman.h [PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store 2006-01-06 08:33:22 -08:00
mmu_context.h
mmu.h
mmzone.h
module.h
msgbuf.h
msi.h
namei.h
nodedata.h
numa.h
numnodes.h
page.h
pal.h
param.h
parport.h
patch.h
pci.h
percpu.h
perfmon_default_smpl.h
perfmon.h
pgalloc.h
pgtable.h
poll.h
posix_types.h
processor.h
ptrace_offsets.h
ptrace.h
resource.h
rse.h
rwsem.h
sal.h [IA64] Split 16-bit severity field in sal_log_record_header 2005-12-13 10:41:49 -08:00
scatterlist.h
sections.h
segment.h
semaphore.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h
socket.h
sockios.h
sparsemem.h
spinlock_types.h
spinlock.h [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
stat.h
statfs.h
string.h
suspend.h
system.h
termbits.h
termios.h
thread_info.h
timex.h
tlb.h
tlbflush.h
topology.h [PATCH] x86_64/ia64 : Fix compilation error for node_to_first_cpu 2005-12-24 12:30:22 -08:00
types.h
uaccess.h
ucontext.h
unaligned.h
uncached.h
unistd.h [PATCH] Swap Migration V5: sys_migrate_pages interface 2006-01-08 20:12:42 -08:00
unwind.h
user.h
ustack.h
vga.h
xor.h