* [Qemu-devel] [PATCH] target/openrisc: Fix writes to interrupt mask register
@ 2018-07-01 8:12 Stafford Horne
2018-07-01 14:19 ` Richard Henderson
0 siblings, 1 reply; 2+ messages in thread
From: Stafford Horne @ 2018-07-01 8:12 UTC (permalink / raw)
To: QEMU Development; +Cc: Richard Henderson, davidsondfgl, Stafford Horne
The interrupt controller mask register (PICMR) allows writing any value
to any of the 32 interrupt mask bits. Writing a 0 masks the interrupt
writing a 1 unmasks (enables) the the interrupt.
For some reason the old code was or'ing the write values to the PICMR
meaning it was not possible to ever mask a interrupt once it was
enabled.
I have tested this by running linux 4.18 and my regular checks, I don't
see any issues.
Reported-by: Davidson Francis <davidsondfgl@gmail.com>
Signed-off-by: Stafford Horne <shorne@gmail.com>
---
target/openrisc/sys_helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/openrisc/sys_helper.c b/target/openrisc/sys_helper.c
index 541615bfb3..b66a45c1e0 100644
--- a/target/openrisc/sys_helper.c
+++ b/target/openrisc/sys_helper.c
@@ -142,7 +142,7 @@ void HELPER(mtspr)(CPUOpenRISCState *env, target_ulong spr, target_ulong rb)
}
break;
case TO_SPR(9, 0): /* PICMR */
- env->picmr |= rb;
+ env->picmr = rb;
break;
case TO_SPR(9, 2): /* PICSR */
env->picsr &= ~rb;
--
2.17.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] target/openrisc: Fix writes to interrupt mask register
2018-07-01 8:12 [Qemu-devel] [PATCH] target/openrisc: Fix writes to interrupt mask register Stafford Horne
@ 2018-07-01 14:19 ` Richard Henderson
0 siblings, 0 replies; 2+ messages in thread
From: Richard Henderson @ 2018-07-01 14:19 UTC (permalink / raw)
To: Stafford Horne, QEMU Development; +Cc: davidsondfgl, Richard Henderson
On 07/01/2018 01:12 AM, Stafford Horne wrote:
> The interrupt controller mask register (PICMR) allows writing any value
> to any of the 32 interrupt mask bits. Writing a 0 masks the interrupt
> writing a 1 unmasks (enables) the the interrupt.
>
> For some reason the old code was or'ing the write values to the PICMR
> meaning it was not possible to ever mask a interrupt once it was
> enabled.
>
> I have tested this by running linux 4.18 and my regular checks, I don't
> see any issues.
>
> Reported-by: Davidson Francis <davidsondfgl@gmail.com>
> Signed-off-by: Stafford Horne <shorne@gmail.com>
> ---
> target/openrisc/sys_helper.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-07-01 14:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-01 8:12 [Qemu-devel] [PATCH] target/openrisc: Fix writes to interrupt mask register Stafford Horne
2018-07-01 14:19 ` Richard Henderson
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).