powerpc/6xx: fix setup and use of SPRN_SPRG_PGDIR for hash32
authorChristophe Leroy <christophe.leroy@c-s.fr>
Mon, 11 Mar 2019 08:30:27 +0000 (08:30 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 18 Mar 2019 13:30:19 +0000 (00:30 +1100)
commit4622a2d43101ea2e3d54a2af090f25a5886c648b
tree56e6c8da5ca03d5dc969791f2b87da3c04d13067
parentb5b4453e7912f056da1ca7572574cada32ecb60c
powerpc/6xx: fix setup and use of SPRN_SPRG_PGDIR for hash32

Not only the 603 but all 6xx need SPRN_SPRG_PGDIR to be initialised at
startup. This patch move it from __setup_cpu_603() to start_here()
and __secondary_start(), close to the initialisation of SPRN_THREAD.

Previously, virt addr of PGDIR was retrieved from thread struct.
Now that it is the phys addr which is stored in SPRN_SPRG_PGDIR,
hash_page() shall not convert it to phys anymore.
This patch removes the conversion.

Fixes: 93c4a162b014 ("powerpc/6xx: Store PGDIR physical address in a SPRG")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/cpu_setup_6xx.S
arch/powerpc/kernel/head_32.S
arch/powerpc/mm/hash_low_32.S