diff mbox

powerpc/kernel: Initialize load_tm on task creation

Message ID 1496673659-18499-1-git-send-email-leitao@debian.org (mailing list archive)
State Accepted
Commit 7f22ced4377628074e2ac25f41a88f98eb3b03f1
Headers show

Commit Message

Breno Leitao June 5, 2017, 2:40 p.m. UTC
Currently tsk->thread.load_tm is not initialized in the task creation
and can contain garbage on a new task.

This is an undesired behaviour, since it affects the timing to enable
and disable the transactional memory laziness (disabling and enabling
the MSR TM bit, which affects TM reclaim and recheckpoint in the
scheduling process).

CC: Anton Blanchard <anton@samba.org>
Fixes: 5d176f751ee3c6eededd984ad409bff201f436a7
Signed-off-by: Breno Leitao <leitao@debian.org>
---
 arch/powerpc/kernel/process.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Daniel Axtens June 5, 2017, 10:52 p.m. UTC | #1
Hi Breno,

Looks good to me.

> Currently tsk->thread.load_tm is not initialized in the task creation
> and can contain garbage on a new task.
>
> This is an undesired behaviour, since it affects the timing to enable
> and disable the transactional memory laziness (disabling and enabling
> the MSR TM bit, which affects TM reclaim and recheckpoint in the
> scheduling process).

Is there any chance this uninitialised memory will leak something
interesting/sensitive? (Therefore, should this go to stable?)

Regards,
Daniel


> CC: Anton Blanchard <anton@samba.org>
> Fixes: 5d176f751ee3c6eededd984ad409bff201f436a7
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
>  arch/powerpc/kernel/process.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index a9435397eab8..2ad725ef4368 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -1687,6 +1687,7 @@ void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp)
>  	current->thread.tm_tfhar = 0;
>  	current->thread.tm_texasr = 0;
>  	current->thread.tm_tfiar = 0;
> +	current->thread.load_tm = 0;
>  #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
>  }
>  EXPORT_SYMBOL(start_thread);
> -- 
> 2.11.0
Michael Ellerman June 6, 2017, 4:47 a.m. UTC | #2
Daniel Axtens <dja@axtens.net> writes:

> Hi Breno,
>
> Looks good to me.
>
>> Currently tsk->thread.load_tm is not initialized in the task creation
>> and can contain garbage on a new task.
>>
>> This is an undesired behaviour, since it affects the timing to enable
>> and disable the transactional memory laziness (disabling and enabling
>> the MSR TM bit, which affects TM reclaim and recheckpoint in the
>> scheduling process).
>
> Is there any chance this uninitialised memory will leak something
> interesting/sensitive? (Therefore, should this go to stable?)

I'll send it to stable anyway for the original bug it fixes.

cheers
Michael Ellerman June 8, 2017, 4:05 a.m. UTC | #3
On Mon, 2017-06-05 at 14:40:59 UTC, Breno Leitao wrote:
> Currently tsk->thread.load_tm is not initialized in the task creation
> and can contain garbage on a new task.
> 
> This is an undesired behaviour, since it affects the timing to enable
> and disable the transactional memory laziness (disabling and enabling
> the MSR TM bit, which affects TM reclaim and recheckpoint in the
> scheduling process).
> 
> CC: Anton Blanchard <anton@samba.org>
> Fixes: 5d176f751ee3c6eededd984ad409bff201f436a7
> Signed-off-by: Breno Leitao <leitao@debian.org>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/7f22ced4377628074e2ac25f41a88f

cheers
diff mbox

Patch

diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index a9435397eab8..2ad725ef4368 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1687,6 +1687,7 @@  void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp)
 	current->thread.tm_tfhar = 0;
 	current->thread.tm_texasr = 0;
 	current->thread.tm_tfiar = 0;
+	current->thread.load_tm = 0;
 #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
 }
 EXPORT_SYMBOL(start_thread);