projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] i386 io_apic.c: Memorize at bootup where the i8259 is connected
[powerpc.git]
/
kernel
/
exit.c
diff --git
a/kernel/exit.c
b/kernel/exit.c
index
6d2089a
..
79f52b8
100644
(file)
--- a/
kernel/exit.c
+++ b/
kernel/exit.c
@@
-371,6
+371,12
@@
static inline void close_files(struct files_struct * files)
struct fdtable *fdt;
j = 0;
struct fdtable *fdt;
j = 0;
+
+ /*
+ * It is safe to dereference the fd table without RCU or
+ * ->file_lock because this is the last reference to the
+ * files structure.
+ */
fdt = files_fdtable(files);
for (;;) {
unsigned long set;
fdt = files_fdtable(files);
for (;;) {
unsigned long set;
@@
-833,10
+839,14
@@
fastcall NORET_TYPE void do_exit(long code)
preempt_count());
acct_update_integrals(tsk);
preempt_count());
acct_update_integrals(tsk);
- update_mem_hiwater(tsk);
+ if (tsk->mm) {
+ update_hiwater_rss(tsk->mm);
+ update_hiwater_vm(tsk->mm);
+ }
group_dead = atomic_dec_and_test(&tsk->signal->live);
if (group_dead) {
del_timer_sync(&tsk->signal->real_timer);
group_dead = atomic_dec_and_test(&tsk->signal->live);
if (group_dead) {
del_timer_sync(&tsk->signal->real_timer);
+ exit_itimers(tsk->signal);
acct_process(code);
}
exit_mm(tsk);
acct_process(code);
}
exit_mm(tsk);
@@
-1197,7
+1207,7
@@
static int wait_task_stopped(task_t *p, int delayed_group_leader, int noreap,
exit_code = p->exit_code;
if (unlikely(!exit_code) ||
exit_code = p->exit_code;
if (unlikely(!exit_code) ||
- unlikely(p->state
> TASK_STOPP
ED))
+ unlikely(p->state
& TASK_TRAC
ED))
goto bail_ref;
return wait_noreap_copyout(p, pid, uid,
why, (exit_code << 8) | 0x7f,
goto bail_ref;
return wait_noreap_copyout(p, pid, uid,
why, (exit_code << 8) | 0x7f,