Each mode has its own stack, but we only use it as a base pointer to a private memory region. That region, which has a size of sizeof(struct pt_regs), is used to store some registers during the switch to svc mode - which will use the normal svc stack. The switch to svc mode is done because we handle all exceptions in svc.
Signed-off-by: Andrew Jones <drjo...@redhat.com> --- arm/cstart.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arm/cstart.S b/arm/cstart.S index fd02aaab268d7..08a0b3ecc61f6 100644 --- a/arm/cstart.S +++ b/arm/cstart.S @@ -121,8 +121,9 @@ asm_mmu_enable: * Simplified version of the Linux kernel implementation * arch/arm/kernel/entry-armv.S * - * Each mode has an S_FRAME_SIZE sized stack initialized - * in exceptions_init + * Each mode has an S_FRAME_SIZE sized memory region, + * and the mode's stack pointer has been initialized + * to the base of that region in exceptions_init. */ .macro vector_stub, name, vec, mode, correction=0 .align 5 -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html