|
@@ -169,7 +169,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
|
|
|
#ifdef CONFIG_PPC_ISERIES
|
|
|
if (_machine == PLATFORM_ISERIES_LPAR)
|
|
|
ret = iSeries_hpte_insert(hpteg, va,
|
|
|
- __pa(vaddr),
|
|
|
+ paddr,
|
|
|
tmp_mode,
|
|
|
HPTE_V_BOLTED,
|
|
|
psize);
|
|
@@ -178,7 +178,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
|
|
|
#ifdef CONFIG_PPC_PSERIES
|
|
|
if (_machine & PLATFORM_LPAR)
|
|
|
ret = pSeries_lpar_hpte_insert(hpteg, va,
|
|
|
- virt_to_abs(paddr),
|
|
|
+ paddr,
|
|
|
tmp_mode,
|
|
|
HPTE_V_BOLTED,
|
|
|
psize);
|
|
@@ -186,7 +186,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
|
|
|
#endif
|
|
|
#ifdef CONFIG_PPC_MULTIPLATFORM
|
|
|
ret = native_hpte_insert(hpteg, va,
|
|
|
- virt_to_abs(paddr),
|
|
|
+ paddr,
|
|
|
tmp_mode, HPTE_V_BOLTED,
|
|
|
psize);
|
|
|
#endif
|
|
@@ -392,7 +392,7 @@ static unsigned long __init htab_get_table_size(void)
|
|
|
#ifdef CONFIG_MEMORY_HOTPLUG
|
|
|
void create_section_mapping(unsigned long start, unsigned long end)
|
|
|
{
|
|
|
- BUG_ON(htab_bolt_mapping(start, end, start,
|
|
|
+ BUG_ON(htab_bolt_mapping(start, end, __pa(start),
|
|
|
_PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX,
|
|
|
mmu_linear_psize));
|
|
|
}
|
|
@@ -473,21 +473,22 @@ void __init htab_initialize(void)
|
|
|
|
|
|
if (dart_tablebase != 0 && dart_tablebase >= base
|
|
|
&& dart_tablebase < (base + size)) {
|
|
|
+ unsigned long dart_table_end = dart_tablebase + 16 * MB;
|
|
|
if (base != dart_tablebase)
|
|
|
BUG_ON(htab_bolt_mapping(base, dart_tablebase,
|
|
|
- base, mode_rw,
|
|
|
- mmu_linear_psize));
|
|
|
- if ((base + size) > (dart_tablebase + 16*MB))
|
|
|
+ __pa(base), mode_rw,
|
|
|
+ mmu_linear_psize));
|
|
|
+ if ((base + size) > dart_table_end)
|
|
|
BUG_ON(htab_bolt_mapping(dart_tablebase+16*MB,
|
|
|
- base + size,
|
|
|
- dart_tablebase+16*MB,
|
|
|
+ base + size,
|
|
|
+ __pa(dart_table_end),
|
|
|
mode_rw,
|
|
|
mmu_linear_psize));
|
|
|
continue;
|
|
|
}
|
|
|
#endif /* CONFIG_U3_DART */
|
|
|
- BUG_ON(htab_bolt_mapping(base, base + size, base,
|
|
|
- mode_rw, mmu_linear_psize));
|
|
|
+ BUG_ON(htab_bolt_mapping(base, base + size, __pa(base),
|
|
|
+ mode_rw, mmu_linear_psize));
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -504,8 +505,8 @@ void __init htab_initialize(void)
|
|
|
if (base + size >= tce_alloc_start)
|
|
|
tce_alloc_start = base + size + 1;
|
|
|
|
|
|
- BUG_ON(htab_bolt_mapping(tce_alloc_start, tce_alloc_end,
|
|
|
- tce_alloc_start, mode_rw,
|
|
|
+ BUG_ON(htab_bolt_mapping(tce_alloc_start, tce_alloc_end,
|
|
|
+ __pa(tce_alloc_start), mode_rw,
|
|
|
mmu_linear_psize));
|
|
|
}
|
|
|
|