|
@@ -879,17 +879,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
|
|
|
|