On Thu, Sep 7, 2023 at 9:26 PM Clément Chigot <chi...@adacore.com> wrote: > > This replaces the exit calls by shutdown requests, ensuring a proper > cleanup of Qemu. Otherwise, some connections like gdb could be broken > before its final packet ("Wxx") is being sent. This part, being done > inside qemu_cleanup function, can be reached only when the main loop > exits after a shutdown request. > > Signed-off-by: Clément Chigot <chi...@adacore.com>
Do you mind rebasing this on: https://github.com/alistair23/qemu/tree/riscv-to-apply.next Alistair > --- > hw/char/riscv_htif.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/char/riscv_htif.c b/hw/char/riscv_htif.c > index 37d3ccc76b..7e9b6fcc98 100644 > --- a/hw/char/riscv_htif.c > +++ b/hw/char/riscv_htif.c > @@ -31,6 +31,7 @@ > #include "qemu/error-report.h" > #include "exec/address-spaces.h" > #include "sysemu/dma.h" > +#include "sysemu/runstate.h" > > #define RISCV_DEBUG_HTIF 0 > #define HTIF_DEBUG(fmt, ...) > \ > @@ -205,7 +206,9 @@ static void htif_handle_tohost_write(HTIFState *s, > uint64_t val_written) > g_free(sig_data); > } > > - exit(exit_code); > + qemu_system_shutdown_request_with_code( > + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, exit_code); > + return; > } else { > uint64_t syscall[8]; > cpu_physical_memory_read(payload, syscall, sizeof(syscall)); > -- > 2.25.1 >