Merge branch 'linus' into core/rcu
Merge reason: Avoid fuzz in init/main.c and update from rc6 to rc8. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -426,7 +426,6 @@ static struct mm_struct * mm_init(struct mm_struct * mm, struct task_struct *p)
|
||||
init_rwsem(&mm->mmap_sem);
|
||||
INIT_LIST_HEAD(&mm->mmlist);
|
||||
mm->flags = (current->mm) ? current->mm->flags : default_dump_filter;
|
||||
mm->oom_adj = (current->mm) ? current->mm->oom_adj : 0;
|
||||
mm->core_state = NULL;
|
||||
mm->nr_ptes = 0;
|
||||
set_mm_counter(mm, file_rss, 0);
|
||||
@@ -816,11 +815,8 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
|
||||
{
|
||||
struct signal_struct *sig;
|
||||
|
||||
if (clone_flags & CLONE_THREAD) {
|
||||
atomic_inc(¤t->signal->count);
|
||||
atomic_inc(¤t->signal->live);
|
||||
if (clone_flags & CLONE_THREAD)
|
||||
return 0;
|
||||
}
|
||||
|
||||
sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL);
|
||||
tsk->signal = sig;
|
||||
@@ -878,16 +874,6 @@ void __cleanup_signal(struct signal_struct *sig)
|
||||
kmem_cache_free(signal_cachep, sig);
|
||||
}
|
||||
|
||||
static void cleanup_signal(struct task_struct *tsk)
|
||||
{
|
||||
struct signal_struct *sig = tsk->signal;
|
||||
|
||||
atomic_dec(&sig->live);
|
||||
|
||||
if (atomic_dec_and_test(&sig->count))
|
||||
__cleanup_signal(sig);
|
||||
}
|
||||
|
||||
static void copy_flags(unsigned long clone_flags, struct task_struct *p)
|
||||
{
|
||||
unsigned long new_flags = p->flags;
|
||||
@@ -1237,6 +1223,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
|
||||
}
|
||||
|
||||
if (clone_flags & CLONE_THREAD) {
|
||||
atomic_inc(¤t->signal->count);
|
||||
atomic_inc(¤t->signal->live);
|
||||
p->group_leader = current->group_leader;
|
||||
list_add_tail_rcu(&p->thread_group, &p->group_leader->thread_group);
|
||||
}
|
||||
@@ -1280,7 +1268,8 @@ bad_fork_cleanup_mm:
|
||||
if (p->mm)
|
||||
mmput(p->mm);
|
||||
bad_fork_cleanup_signal:
|
||||
cleanup_signal(p);
|
||||
if (!(clone_flags & CLONE_THREAD))
|
||||
__cleanup_signal(p->signal);
|
||||
bad_fork_cleanup_sighand:
|
||||
__cleanup_sighand(p->sighand);
|
||||
bad_fork_cleanup_fs:
|
||||
|
||||
Reference in New Issue
Block a user