提交 d8c476ee 编写于 作者: A Aneesh Kumar K.V 提交者: Michael Ellerman

powerpc/mm/radix: Isolate hash table function from pseries guest code

Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 caca285e
...@@ -89,18 +89,21 @@ void vpa_init(int cpu) ...@@ -89,18 +89,21 @@ void vpa_init(int cpu)
"%lx failed with %ld\n", cpu, hwcpu, addr, ret); "%lx failed with %ld\n", cpu, hwcpu, addr, ret);
return; return;
} }
#ifdef CONFIG_PPC_STD_MMU_64
/* /*
* PAPR says this feature is SLB-Buffer but firmware never * PAPR says this feature is SLB-Buffer but firmware never
* reports that. All SPLPAR support SLB shadow buffer. * reports that. All SPLPAR support SLB shadow buffer.
*/ */
if (!radix_enabled() && firmware_has_feature(FW_FEATURE_SPLPAR)) {
addr = __pa(paca[cpu].slb_shadow_ptr); addr = __pa(paca[cpu].slb_shadow_ptr);
if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
ret = register_slb_shadow(hwcpu, addr); ret = register_slb_shadow(hwcpu, addr);
if (ret) if (ret)
pr_err("WARNING: SLB shadow buffer registration for " pr_err("WARNING: SLB shadow buffer registration for "
"cpu %d (hw %d) of area %lx failed with %ld\n", "cpu %d (hw %d) of area %lx failed with %ld\n",
cpu, hwcpu, addr, ret); cpu, hwcpu, addr, ret);
} }
#endif /* CONFIG_PPC_STD_MMU_64 */
/* /*
* Register dispatch trace log, if one has been allocated. * Register dispatch trace log, if one has been allocated.
...@@ -123,6 +126,8 @@ void vpa_init(int cpu) ...@@ -123,6 +126,8 @@ void vpa_init(int cpu)
} }
} }
#ifdef CONFIG_PPC_STD_MMU_64
static long pSeries_lpar_hpte_insert(unsigned long hpte_group, static long pSeries_lpar_hpte_insert(unsigned long hpte_group,
unsigned long vpn, unsigned long pa, unsigned long vpn, unsigned long pa,
unsigned long rflags, unsigned long vflags, unsigned long rflags, unsigned long vflags,
...@@ -655,6 +660,8 @@ static void pSeries_set_page_state(struct page *page, int order, ...@@ -655,6 +660,8 @@ static void pSeries_set_page_state(struct page *page, int order,
void arch_free_page(struct page *page, int order) void arch_free_page(struct page *page, int order)
{ {
if (radix_enabled())
return;
if (!cmo_free_hint_flag || !firmware_has_feature(FW_FEATURE_CMO)) if (!cmo_free_hint_flag || !firmware_has_feature(FW_FEATURE_CMO))
return; return;
...@@ -662,7 +669,8 @@ void arch_free_page(struct page *page, int order) ...@@ -662,7 +669,8 @@ void arch_free_page(struct page *page, int order)
} }
EXPORT_SYMBOL(arch_free_page); EXPORT_SYMBOL(arch_free_page);
#endif #endif /* CONFIG_PPC_SMLPAR */
#endif /* CONFIG_PPC_STD_MMU_64 */
#ifdef CONFIG_TRACEPOINTS #ifdef CONFIG_TRACEPOINTS
#ifdef HAVE_JUMP_LABEL #ifdef HAVE_JUMP_LABEL
......
...@@ -484,8 +484,9 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v) ...@@ -484,8 +484,9 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
seq_printf(m, "shared_processor_mode=%d\n", seq_printf(m, "shared_processor_mode=%d\n",
lppaca_shared_proc(get_lppaca())); lppaca_shared_proc(get_lppaca()));
#ifdef CONFIG_PPC_STD_MMU_64
seq_printf(m, "slb_size=%d\n", mmu_slb_size); seq_printf(m, "slb_size=%d\n", mmu_slb_size);
#endif
parse_em_data(m); parse_em_data(m);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册