Commit 2873cd31 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

exit: Remove profile_handoff_task



All profile_handoff_task does is notify the task_free_notifier chain.
The helpers task_handoff_register and task_handoff_unregister are used
to add and delete entries from that chain and are never called.

So remove the dead code and make it much easier to read and reason
about __put_task_struct.

Suggested-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Link: https://lkml.kernel.org/r/87fspyw6m0.fsf@email.froward.int.ebiederm.org


Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 2d4bcf88
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -61,14 +61,6 @@ static inline void profile_hit(int type, void *ip)
struct task_struct;
struct mm_struct;

/* task is dead, free task struct ? Returns 1 if
 * the task was taken, 0 if the task should be freed.
 */
int profile_handoff_task(struct task_struct * task);

int task_handoff_register(struct notifier_block * n);
int task_handoff_unregister(struct notifier_block * n);

#else

#define prof_on 0
@@ -93,17 +85,6 @@ static inline void profile_hit(int type, void *ip)
	return;
}

static inline int task_handoff_register(struct notifier_block * n)
{
	return -ENOSYS;
}

static inline int task_handoff_unregister(struct notifier_block * n)
{
	return -ENOSYS;
}

#define profile_handoff_task(a) (0)

#endif /* CONFIG_PROFILING */

+1 −3
Original line number Diff line number Diff line
@@ -754,8 +754,6 @@ void __put_task_struct(struct task_struct *tsk)
	delayacct_tsk_free(tsk);
	put_signal_struct(tsk->signal);
	sched_core_free(tsk);

	if (!profile_handoff_task(tsk))
	free_task(tsk);
}
EXPORT_SYMBOL_GPL(__put_task_struct);
+0 −23
Original line number Diff line number Diff line
@@ -133,29 +133,6 @@ int __ref profile_init(void)
	return -ENOMEM;
}

/* Profile event notifications */

static ATOMIC_NOTIFIER_HEAD(task_free_notifier);

int profile_handoff_task(struct task_struct *task)
{
	int ret;
	ret = atomic_notifier_call_chain(&task_free_notifier, 0, task);
	return (ret == NOTIFY_OK) ? 1 : 0;
}

int task_handoff_register(struct notifier_block *n)
{
	return atomic_notifier_chain_register(&task_free_notifier, n);
}
EXPORT_SYMBOL_GPL(task_handoff_register);

int task_handoff_unregister(struct notifier_block *n)
{
	return atomic_notifier_chain_unregister(&task_free_notifier, n);
}
EXPORT_SYMBOL_GPL(task_handoff_unregister);

#if defined(CONFIG_SMP) && defined(CONFIG_PROC_FS)
/*
 * Each cpu has a pair of open-addressed hashtables for pending