- Have s390x always deliver NMI to the first CPU. - Remove the @cpu_index / @errp arguments from handler. - Rename API as nmi_trigger() (since not monitor specific). - Only deliver NMI once
Rationale described by Peter in v1 [*]: > The current hw/core/nmi.c code is a bit odd because it's partly > working with a cpu_index and partly not: the code passes cpu_index > around, but in practice for the QMP command the user can't set > which CPU to operate on, and for everything except s390 the > implementation doesn't care anyway. My impression from the IRC > discussion is that it's not really necessary for the S390 that > the monitor user be able to specify which CPU to NMI (and in any > case you can only do that from the HMP command, not the QMP > command, AIUI), so getting rid of that weird inconsistency makes > sense to me: and that's what this patchset is doing. [*] https://lore.kernel.org/qemu-devel/cafeaca_0qufw0mewhc+v+psoise-kqdt9wv4f3rafekyq0d...@mail.gmail.com/: Philippe Mathieu-Daudé (7): hw/nmi: Use object_child_foreach_recursive() in nmi_children() hw/s390x/virtio-ccw: Always deliver NMI to first CPU hw/nmi: Remove @cpu_index argument from NMIClass::nmi_monitor_handler() hw/nmi: Remove @cpu_index argument from nmi_trigger() hw/nmi: Rename nmi_monitor_handler() -> deliver_nmi() hw/nmi: Remove unused @errp argument from deliver_nmi() hw/nmi: Deliver NMI only once qapi/run-state.json | 6 +++-- include/hw/core/nmi.h | 32 +++++++++++++++++++++++++-- hw/core/nmi.c | 45 ++++++++++---------------------------- hw/hppa/machine.c | 4 ++-- hw/i386/x86.c | 4 ++-- hw/intc/m68k_irqc.c | 4 ++-- hw/ipmi/ipmi.c | 3 +-- hw/m68k/q800-glue.c | 4 ++-- hw/misc/macio/gpio.c | 4 ++-- hw/ppc/pnv.c | 4 ++-- hw/ppc/spapr.c | 4 ++-- hw/s390x/s390-virtio-ccw.c | 8 +++---- hw/watchdog/watchdog.c | 2 +- system/cpus.c | 2 +- hmp-commands.hx | 2 +- 15 files changed, 66 insertions(+), 62 deletions(-) -- 2.53.0
