void setup_new_exec(struct linux_binprm * bprm)
{
	/* Setup things that can depend upon the personality */
	struct task_struct *me = current;

	arch_pick_mmap_layout(me->mm, &bprm->rlim_stack);

	arch_setup_new_exec();

	/* Set the new mm task size. We have to do that late because it may
	 * depend on TIF_32BIT which is only updated in flush_thread() on
	 * some architectures like powerpc
	 */
	me->mm->task_size = TASK_SIZE;
	mutex_unlock(&me->signal->exec_update_mutex);
	mutex_unlock(&me->signal->cred_guard_mutex);
}
void setup_new_exec(struct linux_binprm * bprm)
{
	 
	struct task_struct *me = current;

	arch_pick_mmap_layout(me->mm, &bprm->rlim_stack);

	arch_setup_new_exec();

	 
	me->mm->task_size = TASK_SIZE;
	mutex_unlock(&me->signal->exec_update_mutex);
	mutex_unlock(&me->signal->cred_guard_mutex);
}