kernel_optimize_test/include
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
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
asm-arm [PATCH] IRQ type flags 2006-01-08 20:13:46 -08:00
asm-arm26 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-cris [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-frv [PATCH] frv: miscellaneous changes 2006-01-08 20:13:38 -08:00
asm-generic [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-h8300 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-i386 [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-ia64 [PATCH] /dev/mem: validate mmap requests 2006-01-08 20:14:02 -08:00
asm-m32r [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-m68k [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-m68knommu [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-mips [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-parisc [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-powerpc [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-ppc [PATCH] ppc32: Allows compilation of a MPC52xx kernel without PCI 2006-01-06 08:33:31 -08:00
asm-s390 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sh [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sh64 [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sparc [PATCH] consolidate asm/futex.h 2006-01-08 20:13:39 -08:00
asm-sparc64 [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
asm-um [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
asm-v850 [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
asm-x86_64 [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
asm-xtensa [PATCH] atomic_long_t & include/asm-generic/atomic.h V2 2006-01-06 08:33:29 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
math-emu
media Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 2006-01-06 15:25:08 -08:00
mtd
net [IPV4]: make ip_fragment() static 2006-01-07 13:23:39 -08:00
pcmcia [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
rdma
rxrpc
scsi Merge branch 'post-2.6.15' of git://brick.kernel.dk/data/git/linux-2.6-block 2006-01-06 09:01:25 -08:00
sound [ALSA] Revert the nested-device patch 2006-01-04 10:13:48 +01:00
video