On Sun, 20 Feb 2005 19:48:55 +0100
"Blue Swirl" <[EMAIL PROTECTED]> wrote:

> Qemu's Sparc32 system emulator is getting to the point where the first user 
> space application almost executes. But there is some strangeness with 
> kernel's use of %g6, it's used for example in do_sparc_fault, but nothing is 
> restoring it before that, so there is a kernel zero page access as a result. 

%g6 is loaded at "arch/sparc/kernel/etrap.S:trap_setup_from_user" by the
"LOAD_CURRENT()" macro.

At context switch time, it is updated by the switch_to() macro.

At bootup, the first cpu sets up it's %g6 in arch/sparc/kernel/head.S
by this instruction:

                set     init_thread_union, %g6

and on SMP, subsequent processors setup their %g6 via this instruction
sequence in arch/sparc/kernel/trampoline.S:

        /* Give ourselves a stack and curptr. */
        set     current_set, %g5
        srl     %g3, 10, %g4
        and     %g4, 0xc, %g4
        ld      [%g5 + %g4], %g6

It's all very nearly the same as 2.4.x
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to