]> git.hungrycats.org Git - linux/commit
[PATCH] ppc64: Extend ioremap/iounmap infrastructure
authorPaul Mackerras <paulus@samba.org>
Mon, 23 Aug 2004 05:34:52 +0000 (22:34 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Mon, 23 Aug 2004 05:34:52 +0000 (22:34 -0700)
commit78d51cf88b35283da44101a48458361c886b1f92
tree464d2ec2ee5f09fe227ea185c6b47873c11675b5
parent1492512062879ab3a13eae692dfa163aa705d10c
[PATCH] ppc64: Extend ioremap/iounmap infrastructure

The patch below implements the ability to query outstanding imalloc regions
for a given virtual address range.  (Imalloc is the allocator of virtual
space for ioremap.) The patch extends im_get_area() to allow a region
criterion of IM_REGION_SUPERSET.  For a particular "superset" virtual
address and size passed into im_get_area(), the function returns the first
outstanding region that is contained within this superset region.

The patch also changes iounmap_explicit() to allow for the unmapping of all
regions that fit under a "superset".

This ability is necessary for dynamic (runtime) removal of pci host bridges
(PHBs).  For a PHB removal, the platform specification (the RPA) requires
that all of its children slots already be dynamically removed.  Each of
these slot-level removals has fractured the imalloc region assigned to the
PHB at boot.  At PHB removal time, it is necessary to iounmap() the
remaining artifacts of the initial PHB region.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc64/mm/imalloc.c
arch/ppc64/mm/init.c
include/asm-ppc64/pgtable.h