kernel-hacking-2024-linux-s.../arch/powerpc/mm
Michael Ellerman 56ec6462af [PATCH] powerpc/iseries: Fix double phys_to_abs bug in htab_bolt_mapping
Before the merge I updated create_pte_mapping() to work for iSeries, by
calling iSeries_hpte_bolt_or_insert. (4c55130b2a)

Later we changed iSeries_hpte_insert to cope with the bolting case, and called
that instead from create_pte_mapping() (which was renamed to htab_bolt_mapping)
(3c726f8dee).

Unfortunately that change introduced a subtle bug, where we pass an absolute
address to iSeries_hpte_insert() where it expects a physical address. This
leads to us calling phys_to_abs() twice on the physical address, which is
seriously bogus.

This only causes a problem if the absolute address from the first translation
can be looked up again in the chunk_map, which depends on the size and layout
of memory. I've seen it fail on one box, but not others.

The minimal fix is to pass the physical address to iSeries_hpte_insert(). For
2.6.17 we should make phys_to_abs() BUG if we try to double-translate an
address.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-02-28 16:25:55 +11:00
..
4xx_mmu.c
44x_mmu.c
fault.c
fsl_booke_mmu.c
hash_low_32.S
hash_low_64.S
hash_native_64.c
hash_utils_64.c [PATCH] powerpc/iseries: Fix double phys_to_abs bug in htab_bolt_mapping 2006-02-28 16:25:55 +11:00
hugetlbpage.c
imalloc.c
init_32.c
init_64.c
lmb.c
Makefile
mem.c
mmap.c
mmu_context_32.c
mmu_context_64.c
mmu_decl.h
numa.c
pgtable_32.c
pgtable_64.c
ppc_mmu_32.c
slb.c
slb_low.S
stab.c
tlb_32.c
tlb_64.c