* Markus Armbruster (arm...@redhat.com) wrote:
> Signed-off-by: Markus Armbruster
Reviewed-by: Dr. David Alan Gilbert
> ---
> hw/pci/pci-hmp-cmds.c | 30 +++---
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/hw/pci/pci-hmp-cmds.c b/hw/pci/pci-hmp-cmds.c
> index 0807a206e4..279851bfe6 100644
> --- a/hw/pci/pci-hmp-cmds.c
> +++ b/hw/pci/pci-hmp-cmds.c
> @@ -161,6 +161,7 @@ void pcibus_dev_print(Monitor *mon, DeviceState *dev, int
> indent)
>
> void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
> {
> +Error *err = NULL;
> const char *id = qdict_get_str(qdict, "id");
> const char *error_name;
> uint32_t error_status;
> @@ -171,25 +172,21 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const
> QDict *qdict)
> int ret;
>
> ret = pci_qdev_find_device(id, );
> -if (ret < 0) {
> -monitor_printf(mon,
> - "id or pci device path is invalid or device not "
> - "found. %s\n", id);
> -return;
> +if (ret == -ENODEV) {
> +error_setg(, "device '%s' not found", id);
> +goto out;
> }
> -if (!pci_is_express(dev)) {
> -monitor_printf(mon, "the device doesn't support pci express. %s\n",
> - id);
> -return;
> +if (ret < 0 || !pci_is_express(dev)) {
> +error_setg(, "device '%s' is not a PCIe device", id);
> +goto out;
> }
>
> error_name = qdict_get_str(qdict, "error_status");
> if (pcie_aer_parse_error_string(error_name, _status,
> )) {
> if (qemu_strtoul(error_name, NULL, 0, ) < 0
> || num > UINT32_MAX) {
> -monitor_printf(mon, "invalid error status value. \"%s\"",
> - error_name);
> -return;
> +error_setg(, "invalid error status value '%s'", error_name);
> +goto out;
> }
> error_status = num;
> correctable = qdict_get_try_bool(qdict, "correctable", false);
> @@ -223,12 +220,15 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const
> QDict *qdict)
>
> ret = pcie_aer_inject_error(dev, _err);
> if (ret < 0) {
> -monitor_printf(mon, "failed to inject error: %s\n",
> - strerror(-ret));
> -return;
> +error_setg_errno(, -ret, "failed to inject error");
> +goto out;
> }
>
> +
> monitor_printf(mon, "OK id: %s root bus: %s, bus: %x devfn: %x.%x\n",
> id, pci_root_bus_path(dev), pci_dev_bus_num(dev),
> PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
> +
> +out:
> +hmp_handle_error(mon, err);
> }
> --
> 2.37.3
>
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK