[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/3] vl: pass CPUState to qemu_system_guest_panicked
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 3/3] vl: pass CPUState to qemu_system_guest_panicked |
Date: |
Tue, 21 Feb 2017 11:42:56 +0100 |
qemu_system_guest_panicked was already using current_cpu implicitly,
so it makes sense for it to receive a CPUState. This lets the
function call cpu_get_crash_info and free the result.
Signed-off-by: Paolo Bonzini <address@hidden>
---
include/sysemu/sysemu.h | 2 +-
kvm-all.c | 2 +-
vl.c | 13 ++++++++++---
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 576c7ce..a02f53a 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -66,7 +66,7 @@ int qemu_shutdown_requested_get(void);
int qemu_reset_requested_get(void);
void qemu_system_killed(int signal, pid_t pid);
void qemu_system_reset(bool report);
-void qemu_system_guest_panicked(GuestPanicInformation *info);
+void qemu_system_guest_panicked(CPUState *cpu);
size_t qemu_target_page_bits(void);
void qemu_add_exit_notifier(Notifier *notify);
diff --git a/kvm-all.c b/kvm-all.c
index 7ad20b7..edecef0 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -2071,7 +2071,7 @@ int kvm_cpu_exec(CPUState *cpu)
case KVM_SYSTEM_EVENT_CRASH:
kvm_cpu_synchronize_state(cpu);
qemu_mutex_lock_iothread();
- qemu_system_guest_panicked(cpu_get_crash_info(cpu));
+ qemu_system_guest_panicked(cpu);
qemu_mutex_unlock_iothread();
ret = 0;
break;
diff --git a/vl.c b/vl.c
index d8b9dec..2de75ce 100644
--- a/vl.c
+++ b/vl.c
@@ -1679,13 +1679,20 @@ void qemu_system_reset(bool report)
cpu_synchronize_all_post_reset();
}
-void qemu_system_guest_panicked(GuestPanicInformation *info)
+void qemu_system_guest_panicked(CPUState *cpu)
{
+ GuestPanicInformation *info = NULL;
+
qemu_log_mask(LOG_GUEST_ERROR, "Guest crashed\n");
- if (current_cpu) {
- current_cpu->crash_occurred = true;
+ if (!cpu) {
+ cpu = current_cpu;
+ }
+ if (cpu) {
+ cpu->crash_occurred = true;
+ info = cpu_get_crash_info(cpu);
}
+
qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE,
!!info, info, &error_abort);
vm_stop(RUN_STATE_GUEST_PANICKED);
--
2.9.3
- [Qemu-devel] [PATCH 0/3] simplify struct QOM properties and use the result for GUEST_PANICKED, Paolo Bonzini, 2017/02/21
- [Qemu-devel] [PATCH 2/3] cpu: implement get_crash_info through QOM properties, Paolo Bonzini, 2017/02/21
- [Qemu-devel] [PATCH 3/3] vl: pass CPUState to qemu_system_guest_panicked,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 1/3] qom-qobject: introduce object_property_{g, s}et_ptr, Paolo Bonzini, 2017/02/21
- Re: [Qemu-devel] [PATCH 0/3] simplify struct QOM properties and use the result for GUEST_PANICKED, no-reply, 2017/02/21
- Re: [Qemu-devel] [PATCH 0/3] simplify struct QOM properties and use the result for GUEST_PANICKED, no-reply, 2017/02/21
- Re: [Qemu-devel] [PATCH 0/3] simplify struct QOM properties and use the result for GUEST_PANICKED, no-reply, 2017/02/21