diff options
author | Mihai Caraman <mihai.caraman@freescale.com> | 2012-08-06 07:27:07 +0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-05 09:35:52 +0400 |
commit | 8b64a9dfb091f1eca8b7e58da82f1e7d1d5fe0ad (patch) | |
tree | 9d0bfd7ecd07c02fef68e7b198a0560340bf0846 /arch/powerpc/kernel/vdso.c | |
parent | 79b5c8dbaa4528a6fd03a4d9d8a6d56a46293a3a (diff) | |
download | linux-8b64a9dfb091f1eca8b7e58da82f1e7d1d5fe0ad.tar.xz |
powerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int
Embedded.Hypervisor category defines GSPRG0..3 physical registers for guests.
Avoid SPRG4-7 usage as scratch in host exception handlers, otherwise guest
SPRG4-7 registers will be clobbered.
For bolted TLB miss exception handlers, which is the version currently
supported by KVM, use SPRN_SPRG_GEN_SCRATCH aka SPRG0 instead of
SPRN_SPRG_TLB_SCRATCH aka SPRG6. Keep using TLB PACA slots to fit in one
64-byte cache line.
For critical exception handlers use SPRG3 instead of SPRG7. Provide a routine
to store and restore user-visible SPRGs. This will be subsequently used
to restore VDSO information in SPRG3. Add EX_R13 to paca slots to free up
SPRG3 and change the critical exception epilog to use it.
Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/vdso.c')
0 files changed, 0 insertions, 0 deletions