Message ID | 20140113123126.20574.74329.stgit@patser (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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?
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
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;
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(-)