MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
Register "a1" is unsaved in this function, when CONFIG_TRACE_IRQFLAGS is enabled, the TRACE_IRQS_OFF macro will call trace_hardirqs_off(), and this may change register "a1". The changed register "a1" as argument will be send to do_fpe() and do_msa_fpe(). Signed-off-by: YuanJunQing <yuanjunqing66@163.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
parent
273b5fa00f
commit
31e1b3efa8
|
@ -476,20 +476,20 @@ NESTED(nmi_handler, PT_SIZE, sp)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro __build_clear_fpe
|
.macro __build_clear_fpe
|
||||||
|
CLI
|
||||||
|
TRACE_IRQS_OFF
|
||||||
.set push
|
.set push
|
||||||
/* gas fails to assemble cfc1 for some archs (octeon).*/ \
|
/* gas fails to assemble cfc1 for some archs (octeon).*/ \
|
||||||
.set mips1
|
.set mips1
|
||||||
SET_HARDFLOAT
|
SET_HARDFLOAT
|
||||||
cfc1 a1, fcr31
|
cfc1 a1, fcr31
|
||||||
.set pop
|
.set pop
|
||||||
CLI
|
|
||||||
TRACE_IRQS_OFF
|
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro __build_clear_msa_fpe
|
.macro __build_clear_msa_fpe
|
||||||
_cfcmsa a1, MSA_CSR
|
|
||||||
CLI
|
CLI
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
|
_cfcmsa a1, MSA_CSR
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro __build_clear_ade
|
.macro __build_clear_ade
|
||||||
|
|
Loading…
Reference in New Issue