[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 12/12] pci: Improve do_pcie_aer_inject_error()'s error messag
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH 12/12] pci: Improve do_pcie_aer_inject_error()'s error messages |
Date: |
Tue, 29 Nov 2022 19:42:29 +0000 |
User-agent: |
Mutt/2.2.7 (2022-08-07) |
* Markus Armbruster (armbru@redhat.com) wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> 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, &dev);
> - 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(&err, "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(&err, "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, &error_status,
> &correctable)) {
> if (qemu_strtoul(error_name, NULL, 0, &num) < 0
> || num > UINT32_MAX) {
> - monitor_printf(mon, "invalid error status value. \"%s\"",
> - error_name);
> - return;
> + error_setg(&err, "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, &aer_err);
> if (ret < 0) {
> - monitor_printf(mon, "failed to inject error: %s\n",
> - strerror(-ret));
> - return;
> + error_setg_errno(&err, -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 / dgilbert@redhat.com / Manchester, UK
- Re: [PATCH 03/12] pci: Move HMP commands from monitor/ to new hw/pci/pci-hmp-cmds.c, (continued)
- [PATCH 08/12] pci: Fix silent truncation of pcie_aer_inject_error argument, Markus Armbruster, 2022/11/28
- [PATCH 10/12] pci: Inline do_pcie_aer_inject_error() into its only caller, Markus Armbruster, 2022/11/28
- [PATCH 11/12] pci: Rename hmp_pcie_aer_inject_error()'s local variable @err, Markus Armbruster, 2022/11/28
- [PATCH 07/12] pci: Move pcibus_dev_print() to pci-hmp-cmds.c, Markus Armbruster, 2022/11/28
- [PATCH 12/12] pci: Improve do_pcie_aer_inject_error()'s error messages, Markus Armbruster, 2022/11/28
- Re: [PATCH 12/12] pci: Improve do_pcie_aer_inject_error()'s error messages,
Dr. David Alan Gilbert <=
- [PATCH 02/12] pci: Move QMP commands to new hw/pci/pci-qmp-cmds.c, Markus Armbruster, 2022/11/28
- [PATCH 04/12] pci: Make query-pci stub consistent with the real one, Markus Armbruster, 2022/11/28
- [PATCH 06/12] pci: Deduplicate get_class_desc(), Markus Armbruster, 2022/11/28
- [PATCH 09/12] pci: Move HMP command from hw/pci/pcie_aer.c to pci-hmp-cmds.c, Markus Armbruster, 2022/11/28
- [PATCH 05/12] pci: Build hw/pci/pci-hmp-cmds.c only when CONFIG_PCI, Markus Armbruster, 2022/11/28