Re: [PATCH 1/7] sched: allow try_to_wake_up to be used internally outside of core.c

Colin Cross
2014-01-13T18:50:21Z

On Mon, Jan 13, 2014 at 4:31 AM, Maarten Lankhorst
<maarten.lankhorst@canonical.com> wrote:
> The kernel fence implementation doesn't use event queues, but needs
> to perform the same wake up. The symbol is not exported, since the
> fence implementation is not built as a module.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
> ---
> include/linux/wait.h | 1 +
> kernel/sched/core.c | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/wait.h b/include/linux/wait.h
> index eaa00b10abaa..c54e3ef50134 100644
> --- a/include/linux/wait.h
> +++ b/include/linux/wait.h
> @@ -12,6 +12,7 @@
> typedef struct __wait_queue wait_queue_t;
> typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
> int default_wake_function(wait_queue_t *wait, unsigned mode, int flags, void *key);
> +int try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags);
>
> struct __wait_queue {
> unsigned int flags;
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index a88f4a485c5e..f41d317042dd 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -1578,7 +1578,7 @@ static void ttwu_queue(struct task_struct *p, int cpu)
> * Return: %true if @p was woken up, %false if it was already running.
> * or @state didn't match @p's state.
> */
> -static int
> +int
> try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
> {
> unsigned long flags;
>

wake_up_state is already available in linux/sched.h, can you use that?