Messages in this thread Patch in this message | | | Date | Sun, 15 Nov 2015 20:33:11 +0100 | From | Oleg Nesterov <> | Subject | [PATCH 1/8] stop_machine: cpu_stopper_thread() must check done != NULL |
| |
stop_one_cpu_nowait(fn) will crash the kernel if the callback returns nonzero, work->done == NULL in this case.
This needs more cleanups, cpu_stop_signal_done() is called right after we check done != NULL and it does the same check.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> --- kernel/stop_machine.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index 867bc20..1a66a95 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -454,7 +454,7 @@ repeat: preempt_disable(); ret = fn(arg); - if (ret) + if (ret && done) done->ret = ret; /* restore preemption and check it's still balanced */ -- 1.5.5.1
| |