Ensure that hints are added even if errp is &error_fatal or &error_abort.
Signed-off-by: Greg Kurz <gr...@kaod.org> --- hw/virtio/virtio-pci.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index c6b47a9c7385..1e58822ba186 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1543,9 +1543,12 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp) virtio_pci_disable_modern(proxy); if (!legacy) { - error_setg(errp, "Device doesn't support modern mode, and legacy" + Error *local_err = NULL; + + error_setg(&local_err, "Device doesn't support modern mode, and legacy" " mode is disabled"); - error_append_hint(errp, "Set disable-legacy to off\n"); + error_append_hint(&local_err, "Set disable-legacy to off\n"); + error_propagate(errp, local_err); return; } @@ -1737,10 +1740,13 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp) } if (!virtio_pci_modern(proxy) && !virtio_pci_legacy(proxy)) { - error_setg(errp, "device cannot work as neither modern nor legacy mode" + Error *local_err = NULL; + + error_setg(&local_err, "device cannot work as neither modern nor legacy mode" " is enabled"); - error_append_hint(errp, "Set either disable-modern or disable-legacy" + error_append_hint(&local_err, "Set either disable-modern or disable-legacy" " to off\n"); + error_propagate(errp, local_err); return; }