linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* fix missing MSACSR and upper MSA initialization
@ 2020-08-31  2:01 Huang Pei
  2020-08-31  2:01 ` [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23 Huang Pei
  0 siblings, 1 reply; 4+ messages in thread
From: Huang Pei @ 2020-08-31  2:01 UTC (permalink / raw)
  To: Thomas Bogendoerfer, ambrosehua
  Cc: Li Xuefeng, Yang Tiezhu, Gao Juxin, Fuxin Zhang, Huacai Chen, linux-mips


Add broken commit id 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23
  2020-08-31  2:01 fix missing MSACSR and upper MSA initialization Huang Pei
@ 2020-08-31  2:01 ` Huang Pei
  2020-08-31 21:07   ` Thomas Bogendoerfer
  0 siblings, 1 reply; 4+ messages in thread
From: Huang Pei @ 2020-08-31  2:01 UTC (permalink / raw)
  To: Thomas Bogendoerfer, ambrosehua
  Cc: Li Xuefeng, Yang Tiezhu, Gao Juxin, Fuxin Zhang, Huacai Chen, linux-mips

In cc97ab235f3fe32401ca198cebe6f42642e95770, init_fp_ctx just initialize the
fp/msa context, and own_fp_inatomic just restore FCSR and 64bit FP regs from
it, but miss MSACSR and upper MSA regs for MSA, so MSACSR and MSA upper regs's
value from previous task on current cpu can leak into current task and cause
unpredictable behavior when MSA context not initialized.

Signed-off-by: Huang Pei <huangpei@loongson.cn>
---
 arch/mips/kernel/traps.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 38aa07ccdbcc..cf788591f091 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1287,6 +1287,18 @@ static int enable_restore_fp_context(int msa)
 		err = own_fpu_inatomic(1);
 		if (msa && !err) {
 			enable_msa();
+			/*
+			 * with MSA enabled, userspace can see MSACSR
+			 * and MSA regs, but the values in them are from
+			 * other task before current task, restore them
+			 * from saved fp/msa context
+			 */
+			write_msa_csr(current->thread.fpu.msacsr);
+			/*
+			 * own_fpu_inatomic(1) just restore low 64bit,
+			 * fix the high 64bit
+			 */
+			init_msa_upper();
 			set_thread_flag(TIF_USEDMSA);
 			set_thread_flag(TIF_MSA_CTX_LIVE);
 		}
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23
  2020-08-31  2:01 ` [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23 Huang Pei
@ 2020-08-31 21:07   ` Thomas Bogendoerfer
  2020-09-01  7:13     ` Huang Pei
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Bogendoerfer @ 2020-08-31 21:07 UTC (permalink / raw)
  To: Huang Pei
  Cc: ambrosehua, Li Xuefeng, Yang Tiezhu, Gao Juxin, Fuxin Zhang,
	Huacai Chen, linux-mips

On Mon, Aug 31, 2020 at 10:01:45AM +0800, Huang Pei wrote:
> In cc97ab235f3fe32401ca198cebe6f42642e95770, init_fp_ctx just initialize the

checkpatch will warn you about this:

WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#7: 
In cc97ab235f3fe32401ca198cebe6f42642e95770, init_fp_ctx just initialize the

Use cc97ab235f3f ("MIPS: Simplify FP context initialization") instead of
the pure hash.


> fp/msa context, and own_fp_inatomic just restore FCSR and 64bit FP regs from
> it, but miss MSACSR and upper MSA regs for MSA, so MSACSR and MSA upper regs's
> value from previous task on current cpu can leak into current task and cause
> unpredictable behavior when MSA context not initialized.

And add

Fixes: cc97ab235f3f ("MIPS: Simplify FP context initialization")

before your Signed-off-by, which is what I meant with "add fixes tag".

> 
> Signed-off-by: Huang Pei <huangpei@loongson.cn>
> ---
>  arch/mips/kernel/traps.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23
  2020-08-31 21:07   ` Thomas Bogendoerfer
@ 2020-09-01  7:13     ` Huang Pei
  0 siblings, 0 replies; 4+ messages in thread
From: Huang Pei @ 2020-09-01  7:13 UTC (permalink / raw)
  To: Thomas Bogendoerfer
  Cc: ambrosehua, Li Xuefeng, Yang Tiezhu, Gao Juxin, Fuxin Zhang,
	Huacai Chen, linux-mips

On Mon, Aug 31, 2020 at 11:07:33PM +0200, Thomas Bogendoerfer wrote:
> On Mon, Aug 31, 2020 at 10:01:45AM +0800, Huang Pei wrote:
> > In cc97ab235f3fe32401ca198cebe6f42642e95770, init_fp_ctx just initialize the
> 
> checkpatch will warn you about this:
> 
> WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
> #7: 
> In cc97ab235f3fe32401ca198cebe6f42642e95770, init_fp_ctx just initialize the
> 
> Use cc97ab235f3f ("MIPS: Simplify FP context initialization") instead of
> the pure hash.
> 
> 
> > fp/msa context, and own_fp_inatomic just restore FCSR and 64bit FP regs from
> > it, but miss MSACSR and upper MSA regs for MSA, so MSACSR and MSA upper regs's
> > value from previous task on current cpu can leak into current task and cause
> > unpredictable behavior when MSA context not initialized.
> 
> And add
> 
> Fixes: cc97ab235f3f ("MIPS: Simplify FP context initialization")
> 
> before your Signed-off-by, which is what I meant with "add fixes tag".
> 
> > 
> > Signed-off-by: Huang Pei <huangpei@loongson.cn>
> > ---
> >  arch/mips/kernel/traps.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> 
> -- 
> Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
> good idea.                                                [ RFC1925, 2.3 ]

Thank you for your time, I will reread submitting-patches.rst and
recheck all my patches


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-09-01  7:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-31  2:01 fix missing MSACSR and upper MSA initialization Huang Pei
2020-08-31  2:01 ` [PATCH] MIPS: fix missing MSACSR and upper MSA initialization for cc97ab23 Huang Pei
2020-08-31 21:07   ` Thomas Bogendoerfer
2020-09-01  7:13     ` Huang Pei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).