git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git]
/
kernel
/
exit.c
diff --git
a/kernel/exit.c
b/kernel/exit.c
index
910a071
..
34867cc
100644
(file)
--- a/
kernel/exit.c
+++ b/
kernel/exit.c
@@
-884,9
+884,9
@@
static void check_stack_usage(void)
spin_lock(&low_water_lock);
if (free < lowest_to_date) {
spin_lock(&low_water_lock);
if (free < lowest_to_date) {
- printk(KERN_WARNING "%s
used greatest stack depth: %lu bytes
"
- "left\n",
- current->comm, free);
+ printk(KERN_WARNING "%s
(%d) used greatest stack depth:
"
+ "
%lu bytes
left\n",
+ current->comm,
task_pid_nr(current),
free);
lowest_to_date = free;
}
spin_unlock(&low_water_lock);
lowest_to_date = free;
}
spin_unlock(&low_water_lock);
@@
-946,12
+946,13
@@
void do_exit(long code)
exit_signals(tsk); /* sets PF_EXITING */
/*
* tsk->flags are checked in the futex code to protect against
exit_signals(tsk); /* sets PF_EXITING */
/*
* tsk->flags are checked in the futex code to protect against
- * an exiting task cleaning up the robust pi futexes.
+ * an exiting task cleaning up the robust pi futexes, and in
+ * task_work_add() to avoid the race with exit_task_work().
*/
smp_mb();
raw_spin_unlock_wait(&tsk->pi_lock);
*/
smp_mb();
raw_spin_unlock_wait(&tsk->pi_lock);
- exit_
irq_thread(
);
+ exit_
task_work(tsk
);
if (unlikely(in_atomic()))
printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
if (unlikely(in_atomic()))
printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
@@
-1214,7
+1215,7
@@
static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
unsigned long state;
int retval, status, traced;
pid_t pid = task_pid_vnr(p);
unsigned long state;
int retval, status, traced;
pid_t pid = task_pid_vnr(p);
- uid_t uid = from_kuid_munged(current_user_ns(),
__task_cred(p)->uid
);
+ uid_t uid = from_kuid_munged(current_user_ns(),
task_uid(p)
);
struct siginfo __user *infop;
if (!likely(wo->wo_flags & WEXITED))
struct siginfo __user *infop;
if (!likely(wo->wo_flags & WEXITED))