powerpc/mm/radix: Update Radix tree size as per ISA 3.0
ISA 3.0 updated it to be encoded as Radix tree size = 2^(RTS + 31). We
have it encoded as 2^(RTS + 28). Add a helper with the correct encoding
and use it instead of opencoding.
Fixes: 2bfd65e45e
("powerpc/mm/radix: Add radix callbacks for early init routines")
Reviewed-by: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
e568006b9d
commit
b23d9c5b9c
@@ -160,9 +160,8 @@ redo:
|
||||
process_tb = early_alloc_pgtable(1UL << PRTB_SIZE_SHIFT);
|
||||
/*
|
||||
* Fill in the process table.
|
||||
* we support 52 bits, hence 52-28 = 24, 11000
|
||||
*/
|
||||
rts_field = 3ull << PPC_BITLSHIFT(2);
|
||||
rts_field = radix__get_tree_size();
|
||||
process_tb->prtb0 = cpu_to_be64(rts_field | __pa(init_mm.pgd) | RADIX_PGD_INDEX_SIZE);
|
||||
/*
|
||||
* Fill in the partition table. We are suppose to use effective address
|
||||
@@ -176,10 +175,8 @@ redo:
|
||||
static void __init radix_init_partition_table(void)
|
||||
{
|
||||
unsigned long rts_field;
|
||||
/*
|
||||
* we support 52 bits, hence 52-28 = 24, 11000
|
||||
*/
|
||||
rts_field = 3ull << PPC_BITLSHIFT(2);
|
||||
|
||||
rts_field = radix__get_tree_size();
|
||||
|
||||
BUILD_BUG_ON_MSG((PATB_SIZE_SHIFT > 24), "Partition table size too large.");
|
||||
partition_tb = early_alloc_pgtable(1UL << PATB_SIZE_SHIFT);
|
||||
|
Reference in New Issue
Block a user