diff options
Diffstat (limited to 'arch/powerpc/mm/hash_utils_64.c')
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 88fdd9d25077..daee7f4e5a14 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -243,7 +243,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend, | |||
243 | } | 243 | } |
244 | 244 | ||
245 | #ifdef CONFIG_MEMORY_HOTPLUG | 245 | #ifdef CONFIG_MEMORY_HOTPLUG |
246 | static int htab_remove_mapping(unsigned long vstart, unsigned long vend, | 246 | int htab_remove_mapping(unsigned long vstart, unsigned long vend, |
247 | int psize, int ssize) | 247 | int psize, int ssize) |
248 | { | 248 | { |
249 | unsigned long vaddr; | 249 | unsigned long vaddr; |
@@ -821,21 +821,14 @@ static void __init htab_initialize(void) | |||
821 | 821 | ||
822 | void __init early_init_mmu(void) | 822 | void __init early_init_mmu(void) |
823 | { | 823 | { |
824 | /* Setup initial STAB address in the PACA */ | ||
825 | get_paca()->stab_real = __pa((u64)&initial_stab); | ||
826 | get_paca()->stab_addr = (u64)&initial_stab; | ||
827 | |||
828 | /* Initialize the MMU Hash table and create the linear mapping | 824 | /* Initialize the MMU Hash table and create the linear mapping |
829 | * of memory. Has to be done before stab/slb initialization as | 825 | * of memory. Has to be done before SLB initialization as this is |
830 | * this is currently where the page size encoding is obtained | 826 | * currently where the page size encoding is obtained. |
831 | */ | 827 | */ |
832 | htab_initialize(); | 828 | htab_initialize(); |
833 | 829 | ||
834 | /* Initialize stab / SLB management */ | 830 | /* Initialize SLB management */ |
835 | if (mmu_has_feature(MMU_FTR_SLB)) | 831 | slb_initialize(); |
836 | slb_initialize(); | ||
837 | else | ||
838 | stab_initialize(get_paca()->stab_real); | ||
839 | } | 832 | } |
840 | 833 | ||
841 | #ifdef CONFIG_SMP | 834 | #ifdef CONFIG_SMP |
@@ -845,13 +838,8 @@ void early_init_mmu_secondary(void) | |||
845 | if (!firmware_has_feature(FW_FEATURE_LPAR)) | 838 | if (!firmware_has_feature(FW_FEATURE_LPAR)) |
846 | mtspr(SPRN_SDR1, _SDR1); | 839 | mtspr(SPRN_SDR1, _SDR1); |
847 | 840 | ||
848 | /* Initialize STAB/SLB. We use a virtual address as it works | 841 | /* Initialize SLB */ |
849 | * in real mode on pSeries. | 842 | slb_initialize(); |
850 | */ | ||
851 | if (mmu_has_feature(MMU_FTR_SLB)) | ||
852 | slb_initialize(); | ||
853 | else | ||
854 | stab_initialize(get_paca()->stab_addr); | ||
855 | } | 843 | } |
856 | #endif /* CONFIG_SMP */ | 844 | #endif /* CONFIG_SMP */ |
857 | 845 | ||