]> git.hungrycats.org Git - linux/commit
[PATCH] Fix statically declare FIXMAPs
authorAndrew Morton <akpm@osdl.org>
Mon, 19 Jan 2004 13:12:38 +0000 (05:12 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 19 Jan 2004 13:12:38 +0000 (05:12 -0800)
commiteb4f6fb91be878c1acd727d62abb600b77b631fd
tree17350cefa1d36649efe7512b7b48e107c2d2e83e
parent3ab8835250b69514319969a97661b1d83814b637
[PATCH] Fix statically declare FIXMAPs

From: Anton Blanchard <anton@samba.org>, me.

Two uses of the FIXADDR_USER_START/END things are problematic:

a) ppc64 wants the FIXADDR area to be at a different location on 32bit and
   64bit tasks.  On 32bit we want it just below 4GB but that gets in the way
   on 64bit.  By putting both right at -(some small amount) we can also use
   some ppc tricks to get there real quickly (single instruction branches).

b) We assume that FIXADDR_USER_START and FIXADDR_USER_END are constants.
   This breaks the UML build.

Fixes:

- Call it all gate. We currently have half the stuff called fixmap and
  the other gate, lets be consistent.

- Create in_gate_area(), get_gate_vma() and use it in both places

- Provide defaults for in_gate_area/get_gate_vma, allowing an arch to
  override it. (I used CONFIG_* but am open to better suggestions here)

- The /proc/pid/maps vma wasnt marked readable but the get_user
  vma was. That sounds suspicious to me, they are now both the same VMA
  and so have the same (read,exec) permissions
fs/proc/task_mmu.c
include/linux/mm.h
mm/memory.c