microblaze: nommu: Don't clobber R11 on syscalls
authorsteve@digidescorp.com <steve@digidescorp.com>
Wed, 9 Dec 2009 23:13:42 +0000 (17:13 -0600)
committerMichal Simek <monstr@monstr.eu>
Mon, 14 Dec 2009 07:45:11 +0000 (08:45 +0100)
The noMMU syscall trap has a bug that causes R11 to be zero on return to
userland. Remove the extra "save" of R11 responsible for the bug.

Remove reloading of mode indicator because r11 already contains it.

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/entry-nommu.S

index 9083d85376a4dc57b6e7c535869eb4b3f11570f5..95b0855802dff0b342d77cfe279f1eaa23bf6828 100644 (file)
@@ -208,8 +208,6 @@ ENTRY(_user_exception)
        lwi     r1, r1, TS_THREAD_INFO          /* get the thread info */
        /* calculate kernel stack pointer */
        addik   r1, r1, THREAD_SIZE - PT_SIZE
-       swi     r11, r0, PER_CPU(R11_SAVE)      /* temporarily save r11 */
-       lwi     r11, r0, PER_CPU(KM)            /* load mode indicator */
 2:
        swi     r11, r1, PT_MODE                /* store the mode */
        lwi     r11, r0, PER_CPU(R11_SAVE)      /* reload r11 */