Use set_current_state macro instead of current->state = TASK_RUNNING
Signed-off-by: Xianting Tian <[email protected]>
---
kernel/time/timer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 4820823..b9ecf87 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1882,7 +1882,7 @@ signed long __sched schedule_timeout(signed long timeout)
printk(KERN_ERR "schedule_timeout: wrong timeout "
"value %lx\n", timeout);
dump_stack();
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
goto out;
}
}
--
1.8.3.1
Xianting Tian <[email protected]> writes:
> Use set_current_state macro instead of current->state = TASK_RUNNING
>
> Signed-off-by: Xianting Tian <[email protected]>
> ---
> kernel/time/timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/time/timer.c b/kernel/time/timer.c
> index 4820823..b9ecf87 100644
> --- a/kernel/time/timer.c
> +++ b/kernel/time/timer.c
> @@ -1882,7 +1882,7 @@ signed long __sched schedule_timeout(signed long timeout)
> printk(KERN_ERR "schedule_timeout: wrong timeout "
> "value %lx\n", timeout);
> dump_stack();
> - current->state = TASK_RUNNING;
> + set_current_state(TASK_RUNNING);
This is still wrong. Again:
"That's not the same and adds a barrier which is not needed.
Not a big problem in that particular error handling code path, but in
general you really have to look whether your replacement is resulting in
the same code.
If not then you need to make an argument in the changelog why you are
replacing existing code with something which is not fully equivalent.
For this particular case, please check the implementation and read the
documentation of set_current_state() in include/linux/sched.h."
Thanks,
tglx