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

Message ID 20140113123126.20574.74329.stgit@patser (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Maarten Lankhorst Jan. 13, 2014, 12:31 p.m. UTC
  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(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Comments

Colin Cross Jan. 13, 2014, 6:50 p.m. UTC | #1
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?
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Maarten Lankhorst Jan. 14, 2014, 8:35 a.m. UTC | #2
op 13-01-14 19:50, Colin Cross schreef:
> 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?
>
Indeed! Thanks for the catch.

~Maarten
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

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;