diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2005-06-21 20:15:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-21 21:46:26 -0400 |
commit | 20cee16ced631f70a62c97bdebae08a1c9470448 (patch) | |
tree | f980db4e2b19dfcd4413e6cba4f667eb1d8c79cd /include/asm-ppc64/imalloc.h | |
parent | 6879dc137ea4efad65cab8bf8a7c0b742bcf92cc (diff) |
[PATCH] ppc64: Abolish ioremap_mm
Currently ppc64 has two mm_structs for the kernel, init_mm and also
ioremap_mm. The latter really isn't necessary: this patch abolishes it,
instead restricting vmallocs to the lower 1TB of the init_mm's range and
placing io mappings in the upper 1TB. This simplifies the code in a number
of places and eliminates an unecessary set of pagetables. It also tweaks
the unmap/free path a little, allowing us to remove the unmap_im_area() set
of page table walkers, replacing them with unmap_vm_area().
Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-ppc64/imalloc.h')
-rw-r--r-- | include/asm-ppc64/imalloc.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/include/asm-ppc64/imalloc.h b/include/asm-ppc64/imalloc.h index 3a45e918bf16..e46ff68a6e41 100644 --- a/include/asm-ppc64/imalloc.h +++ b/include/asm-ppc64/imalloc.h | |||
@@ -4,9 +4,9 @@ | |||
4 | /* | 4 | /* |
5 | * Define the address range of the imalloc VM area. | 5 | * Define the address range of the imalloc VM area. |
6 | */ | 6 | */ |
7 | #define PHBS_IO_BASE IOREGIONBASE | 7 | #define PHBS_IO_BASE VMALLOC_END |
8 | #define IMALLOC_BASE (IOREGIONBASE + 0x80000000ul) /* Reserve 2 gigs for PHBs */ | 8 | #define IMALLOC_BASE (PHBS_IO_BASE + 0x80000000ul) /* Reserve 2 gigs for PHBs */ |
9 | #define IMALLOC_END (IOREGIONBASE + EADDR_MASK) | 9 | #define IMALLOC_END (VMALLOC_START + EADDR_MASK) |
10 | 10 | ||
11 | 11 | ||
12 | /* imalloc region types */ | 12 | /* imalloc region types */ |
@@ -18,7 +18,9 @@ | |||
18 | 18 | ||
19 | extern struct vm_struct * im_get_free_area(unsigned long size); | 19 | extern struct vm_struct * im_get_free_area(unsigned long size); |
20 | extern struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size, | 20 | extern struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size, |
21 | int region_type); | 21 | int region_type); |
22 | unsigned long im_free(void *addr); | 22 | extern void im_free(void *addr); |
23 | |||
24 | extern unsigned long ioremap_bot; | ||
23 | 25 | ||
24 | #endif /* _PPC64_IMALLOC_H */ | 26 | #endif /* _PPC64_IMALLOC_H */ |