diff options
| -rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 7b4cacb0d4ba..32f416175db1 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
| @@ -471,7 +471,7 @@ void __init htab_initialize(void) | |||
| 471 | unsigned long table; | 471 | unsigned long table; |
| 472 | unsigned long pteg_count; | 472 | unsigned long pteg_count; |
| 473 | unsigned long mode_rw; | 473 | unsigned long mode_rw; |
| 474 | unsigned long base = 0, size = 0; | 474 | unsigned long base = 0, size = 0, limit; |
| 475 | int i; | 475 | int i; |
| 476 | 476 | ||
| 477 | extern unsigned long tce_alloc_start, tce_alloc_end; | 477 | extern unsigned long tce_alloc_start, tce_alloc_end; |
| @@ -505,9 +505,15 @@ void __init htab_initialize(void) | |||
| 505 | _SDR1 = 0; | 505 | _SDR1 = 0; |
| 506 | } else { | 506 | } else { |
| 507 | /* Find storage for the HPT. Must be contiguous in | 507 | /* Find storage for the HPT. Must be contiguous in |
| 508 | * the absolute address space. | 508 | * the absolute address space. On cell we want it to be |
| 509 | * in the first 1 Gig. | ||
| 509 | */ | 510 | */ |
| 510 | table = lmb_alloc(htab_size_bytes, htab_size_bytes); | 511 | if (machine_is(cell)) |
| 512 | limit = 0x40000000; | ||
| 513 | else | ||
| 514 | limit = 0; | ||
| 515 | |||
| 516 | table = lmb_alloc_base(htab_size_bytes, htab_size_bytes, limit); | ||
| 511 | 517 | ||
| 512 | DBG("Hash table allocated at %lx, size: %lx\n", table, | 518 | DBG("Hash table allocated at %lx, size: %lx\n", table, |
| 513 | htab_size_bytes); | 519 | htab_size_bytes); |
