qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mips: fix abort on integer overflow
@ 2023-09-24 11:16 Mikulas Patocka
  2023-09-28 19:37 ` Richard Henderson
  0 siblings, 1 reply; 4+ messages in thread
From: Mikulas Patocka @ 2023-09-24 11:16 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Jiaxun Yang, Aurelien Jarno,
	Aleksandar Rikalo, Huacai Chen
  Cc: qemu-devel

Qemu mips userspace emulation crashes with "qemu: unhandled CPU exception 
0x15 - aborting" when one of the integer arithmetic instructions detects 
an overflow.

This patch fixes it so that it delivers SIGFPE with FPE_INTOVF instead.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: qemu-stable@nongnu.org

---
 linux-user/mips/cpu_loop.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: qemu/linux-user/mips/cpu_loop.c
===================================================================
--- qemu.orig/linux-user/mips/cpu_loop.c
+++ qemu/linux-user/mips/cpu_loop.c
@@ -180,7 +180,9 @@ done_syscall:
             }
             force_sig_fault(TARGET_SIGFPE, si_code, env->active_tc.PC);
             break;
-
+	case EXCP_OVERFLOW:
+            do_tr_or_bp(env, BRK_OVERFLOW, false);
+            break;
         /* The code below was inspired by the MIPS Linux kernel trap
          * handling code in arch/mips/kernel/traps.c.
          */



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

* Re: [PATCH] mips: fix abort on integer overflow
  2023-09-24 11:16 [PATCH] mips: fix abort on integer overflow Mikulas Patocka
@ 2023-09-28 19:37 ` Richard Henderson
  2023-09-28 19:55   ` [PATCH v2] " Mikulas Patocka
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Henderson @ 2023-09-28 19:37 UTC (permalink / raw)
  To: Mikulas Patocka, Philippe Mathieu-Daudé, Jiaxun Yang,
	Aurelien Jarno, Aleksandar Rikalo, Huacai Chen
  Cc: qemu-devel

On 9/24/23 07:16, Mikulas Patocka wrote:
> Qemu mips userspace emulation crashes with "qemu: unhandled CPU exception
> 0x15 - aborting" when one of the integer arithmetic instructions detects
> an overflow.
> 
> This patch fixes it so that it delivers SIGFPE with FPE_INTOVF instead.
> 
> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
> Cc: qemu-stable@nongnu.org
> 
> ---
>   linux-user/mips/cpu_loop.c |    4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> Index: qemu/linux-user/mips/cpu_loop.c
> ===================================================================
> --- qemu.orig/linux-user/mips/cpu_loop.c
> +++ qemu/linux-user/mips/cpu_loop.c
> @@ -180,7 +180,9 @@ done_syscall:
>               }
>               force_sig_fault(TARGET_SIGFPE, si_code, env->active_tc.PC);
>               break;
> -
> +	case EXCP_OVERFLOW:
> +            do_tr_or_bp(env, BRK_OVERFLOW, false);
> +            break;


Just call force_sig_fault directly.


r~


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

* [PATCH v2] mips: fix abort on integer overflow
  2023-09-28 19:37 ` Richard Henderson
@ 2023-09-28 19:55   ` Mikulas Patocka
  2023-10-03 20:28     ` Richard Henderson
  0 siblings, 1 reply; 4+ messages in thread
From: Mikulas Patocka @ 2023-09-28 19:55 UTC (permalink / raw)
  To: Richard Henderson
  Cc: Philippe Mathieu-Daudé, Jiaxun Yang, Aurelien Jarno,
	Aleksandar Rikalo, Huacai Chen, qemu-devel



On Thu, 28 Sep 2023, Richard Henderson wrote:

> Just call force_sig_fault directly.
> 
> 
> r~

OK. Here I'm resending it.

Mikulas



From: Mikulas Patocka <mpatocka@redhat.com>

Qemu mips userspace emulation crashes with "qemu: unhandled CPU exception 
0x15 - aborting" when one of the integer arithmetic instructions detects 
an overflow.

This patch fixes it so that it delivers SIGFPE with FPE_INTOVF instead.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: qemu-stable@nongnu.org

---
 linux-user/mips/cpu_loop.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: qemu/linux-user/mips/cpu_loop.c
===================================================================
--- qemu.orig/linux-user/mips/cpu_loop.c
+++ qemu/linux-user/mips/cpu_loop.c
@@ -180,7 +180,9 @@ done_syscall:
             }
             force_sig_fault(TARGET_SIGFPE, si_code, env->active_tc.PC);
             break;
-
+	case EXCP_OVERFLOW:
+            force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->active_tc.PC);
+            break;
         /* The code below was inspired by the MIPS Linux kernel trap
          * handling code in arch/mips/kernel/traps.c.
          */



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

* Re: [PATCH v2] mips: fix abort on integer overflow
  2023-09-28 19:55   ` [PATCH v2] " Mikulas Patocka
@ 2023-10-03 20:28     ` Richard Henderson
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Henderson @ 2023-10-03 20:28 UTC (permalink / raw)
  To: Mikulas Patocka
  Cc: Philippe Mathieu-Daudé, Jiaxun Yang, Aurelien Jarno,
	Aleksandar Rikalo, Huacai Chen, qemu-devel

On 9/28/23 12:55, Mikulas Patocka wrote:
> 
> 
> On Thu, 28 Sep 2023, Richard Henderson wrote:
> 
>> Just call force_sig_fault directly.
>>
>>
>> r~
> 
> OK. Here I'm resending it.
> 
> Mikulas
> 
> 
> 
> From: Mikulas Patocka <mpatocka@redhat.com>
> 
> Qemu mips userspace emulation crashes with "qemu: unhandled CPU exception
> 0x15 - aborting" when one of the integer arithmetic instructions detects
> an overflow.
> 
> This patch fixes it so that it delivers SIGFPE with FPE_INTOVF instead.
> 
> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
> Cc: qemu-stable@nongnu.org

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

and queued to linux-user-next.


r~


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

end of thread, other threads:[~2023-10-03 20:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-24 11:16 [PATCH] mips: fix abort on integer overflow Mikulas Patocka
2023-09-28 19:37 ` Richard Henderson
2023-09-28 19:55   ` [PATCH v2] " Mikulas Patocka
2023-10-03 20:28     ` 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).