diff options
| author | Chad Reese <creese@caviumnetworks.com> | 2006-05-30 20:16:49 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-06-05 19:15:20 -0400 |
| commit | b1c231f5a57cb4a417c38a8a946f1e66db3bb9c0 (patch) | |
| tree | 940184596b217cfe65948e8e29d91025e3657d47 /include | |
| parent | ecf52d3c895c8bc069b9ae07c18acf39d846c2ef (diff) | |
[MIPS] Fix sparsemem support.
Move memory_present() in arch/mips/kernel/setup.c. When using sparsemem
extreme, this function does an allocate for bootmem. This would always
fail since init_bootmem hasn't been called yet.
Move memory_present after free_bootmem. This only marks actual memory
ranges as present instead of the entire address space.
Signed-off-by: Chad Reese <creese@caviumnetworks.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-mips/page.h | 2 | ||||
| -rw-r--r-- | include/asm-mips/sparsemem.h | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index a1eab136ff6c..4035ec79ecd4 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
| @@ -139,9 +139,11 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
| 139 | 139 | ||
| 140 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | 140 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) |
| 141 | 141 | ||
| 142 | #ifndef CONFIG_SPARSEMEM | ||
| 142 | #ifndef CONFIG_NEED_MULTIPLE_NODES | 143 | #ifndef CONFIG_NEED_MULTIPLE_NODES |
| 143 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | 144 | #define pfn_valid(pfn) ((pfn) < max_mapnr) |
| 144 | #endif | 145 | #endif |
| 146 | #endif | ||
| 145 | 147 | ||
| 146 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 148 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
| 147 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 149 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
diff --git a/include/asm-mips/sparsemem.h b/include/asm-mips/sparsemem.h new file mode 100644 index 000000000000..795ac6c23203 --- /dev/null +++ b/include/asm-mips/sparsemem.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | #ifndef _MIPS_SPARSEMEM_H | ||
| 2 | #define _MIPS_SPARSEMEM_H | ||
| 3 | #ifdef CONFIG_SPARSEMEM | ||
| 4 | |||
| 5 | /* | ||
| 6 | * SECTION_SIZE_BITS 2^N: how big each section will be | ||
| 7 | * MAX_PHYSMEM_BITS 2^N: how much memory we can have in that space | ||
| 8 | */ | ||
| 9 | #define SECTION_SIZE_BITS 28 | ||
| 10 | #define MAX_PHYSMEM_BITS 35 | ||
| 11 | |||
| 12 | #endif /* CONFIG_SPARSEMEM */ | ||
| 13 | #endif /* _MIPS_SPARSEMEM_H */ | ||
| 14 | |||
