ppc64 iSeries: Update create_pte_mapping to replace iSeries_bolt_kernel()
authorMichael Ellerman <michael@ellerman.id.au>
Fri, 23 Sep 2005 04:47:58 +0000 (14:47 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 23 Sep 2005 04:47:58 +0000 (14:47 +1000)
commit4c55130b2aa93370f1bf52d2304394e91cf8ee39
tree522c7f510775f221c4e8046bc238a618db4768df
parentba293fff085fde5b9f1b5a57c8abb1a8098d0c59
ppc64 iSeries: Update create_pte_mapping to replace iSeries_bolt_kernel()

early_setup() calls htab_initialize() which is similar, but not identical
to iSeries_bolt_kernel().

On iSeries the Hypervisor has already inserted some ptes for us, and we
simply have to detect that and bolt them. iSeries_hpte_bolt_or_insert()
implements that logic.

For the case of a non-existing pte we just call iSeries_hpte_insert(). This
appears to work, although it's not entirely equivalent to the old code in
iSeries_make_pte() which panicked if we got a secondary slot. Not sure if
that's important.

Finally we call iSeries_hpte_bolt_or_insert() from create_pte_mapping(),
which is called from htab_initialize() for each lmb region.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
arch/ppc64/kernel/iSeries_htab.c
arch/ppc64/kernel/iSeries_setup.c
arch/ppc64/mm/hash_utils.c
include/asm-ppc64/mmu.h