]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/alpha/kernel/entry.S
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6-omap-h63xx.git] / arch / alpha / kernel / entry.S
index 76cc0cb5fc2e429ebe0a98026271bbff7a6225f9..01ecd09d4a64c42be3a6872d6f068e0492db03d9 100644 (file)
@@ -4,7 +4,6 @@
  * Kernel entry-points.
  */
 
-#include <linux/config.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/pal.h>
@@ -196,6 +195,7 @@ entUna:
        stq     $26, 208($sp)
        stq     $27, 216($sp)
        stq     $28, 224($sp)
+       mov     $sp, $19
        stq     $gp, 232($sp)
        lda     $8, 0x3fff
        stq     $31, 248($sp)
@@ -878,17 +878,19 @@ sys_getxpid:
 
        /* See linux/kernel/timer.c sys_getppid for discussion
           about this loop.  */
-       ldq     $3, TASK_REAL_PARENT($2)
-1:     ldl     $1, TASK_TGID($3)
+       ldq     $3, TASK_GROUP_LEADER($2)
+       ldq     $4, TASK_REAL_PARENT($3)
+       ldl     $0, TASK_TGID($2)
+1:     ldl     $1, TASK_TGID($4)
 #ifdef CONFIG_SMP
-       mov     $3, $4
+       mov     $4, $5
        mb
-       ldq     $3, TASK_REAL_PARENT($2)
-       cmpeq   $3, $4, $4
-       beq     $4, 1b
+       ldq     $3, TASK_GROUP_LEADER($2)
+       ldq     $4, TASK_REAL_PARENT($3)
+       cmpeq   $4, $5, $5
+       beq     $5, 1b
 #endif
        stq     $1, 80($sp)
-       ldl     $0, TASK_TGID($2)
        ret
 .end sys_getxpid