Re: [PATCH 4.4 02/96] s390/runtime instrumention: fix possible memory corruption

Ben Hutchings
2017-12-05T17:02:32Z

On Tue, 2017-11-28 at 11:22 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.  If anyone has any objections, please let me know.
>
> ------------------
>
> From: Heiko Carstens <heiko.carstens@de.ibm.com>
>
> commit d6e646ad7cfa7034d280459b2b2546288f247144 upstream.
[...]
> --- a/arch/s390/kernel/runtime_instr.c
> +++ b/arch/s390/kernel/runtime_instr.c
> @@ -47,11 +47,13 @@ void exit_thread_runtime_instr(void)
>  {
>   struct task_struct *task = current;
>
> + preempt_disable();
>   if (!task->thread.ri_cb)
>   return;

This return path now leaves preemption disabled. This seems to have
been fixed upstream by commit 8d9047f8b967 "s390/runtime
instrumentation: simplify task exit handling".

Ben.

>   disable_runtime_instr();
>   kfree(task->thread.ri_cb);
>   task->thread.ri_cb = NULL;
> + preempt_enable();
>  }
>
>  SYSCALL_DEFINE1(s390_runtime_instr, int, command)
[...]

--
Ben Hutchings
Software Developer, Codethink Ltd.