|
|
218e99 |
From 2f16dbb9130d90415c9db17ac8d28a196515b109 Mon Sep 17 00:00:00 2001
|
|
|
218e99 |
From: Alex Williamson <alex.williamson@redhat.com>
|
|
|
218e99 |
Date: Tue, 5 Nov 2013 15:37:40 +0100
|
|
|
218e99 |
Subject: [PATCH 15/25] vfio-pci: Cleanup error_reports
|
|
|
218e99 |
|
|
|
218e99 |
RH-Author: Alex Williamson <alex.williamson@redhat.com>
|
|
|
218e99 |
Message-id: <20131105153740.16057.95138.stgit@bling.home>
|
|
|
218e99 |
Patchwork-id: 55424
|
|
|
218e99 |
O-Subject: [RHEL7 qemu-kvm PATCH 3/5] vfio-pci: Cleanup error_reports
|
|
|
218e99 |
Bugzilla: 1026550
|
|
|
218e99 |
RH-Acked-by: Bandan Das <bsd@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
|
|
218e99 |
|
|
|
218e99 |
Bugzilla: 1026550
|
|
|
218e99 |
Upstream commit: 8fbf47c3a8a7f37a11268a07290d20a325ba4cb6
|
|
|
218e99 |
|
|
|
218e99 |
Remove carriage returns and tweak formatting for error_reports.
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
|
|
|
218e99 |
---
|
|
|
218e99 |
hw/misc/vfio.c | 24 ++++++++++++------------
|
|
|
218e99 |
1 file changed, 12 insertions(+), 12 deletions(-)
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
218e99 |
---
|
|
|
218e99 |
hw/misc/vfio.c | 24 ++++++++++++------------
|
|
|
218e99 |
1 files changed, 12 insertions(+), 12 deletions(-)
|
|
|
218e99 |
|
|
|
218e99 |
diff --git a/hw/misc/vfio.c b/hw/misc/vfio.c
|
|
|
218e99 |
index 8d84891..e336021 100644
|
|
|
218e99 |
--- a/hw/misc/vfio.c
|
|
|
218e99 |
+++ b/hw/misc/vfio.c
|
|
|
218e99 |
@@ -3050,13 +3050,15 @@ static int vfio_get_device(VFIOGroup *group, const char *name, VFIODevice *vdev)
|
|
|
218e99 |
ret = ioctl(vdev->fd, VFIO_DEVICE_GET_IRQ_INFO, &irq_info);
|
|
|
218e99 |
if (ret) {
|
|
|
218e99 |
/* This can fail for an old kernel or legacy PCI dev */
|
|
|
218e99 |
- DPRINTF("VFIO_DEVICE_GET_IRQ_INFO failure ret=%d\n", ret);
|
|
|
218e99 |
+ DPRINTF("VFIO_DEVICE_GET_IRQ_INFO failure: %m\n");
|
|
|
218e99 |
ret = 0;
|
|
|
218e99 |
} else if (irq_info.count == 1) {
|
|
|
218e99 |
vdev->pci_aer = true;
|
|
|
218e99 |
} else {
|
|
|
218e99 |
- error_report("vfio: Warning: "
|
|
|
218e99 |
- "Could not enable error recovery for the device\n");
|
|
|
218e99 |
+ error_report("vfio: %04x:%02x:%02x.%x "
|
|
|
218e99 |
+ "Could not enable error recovery for the device",
|
|
|
218e99 |
+ vdev->host.domain, vdev->host.bus, vdev->host.slot,
|
|
|
218e99 |
+ vdev->host.function);
|
|
|
218e99 |
}
|
|
|
218e99 |
|
|
|
218e99 |
error:
|
|
|
218e99 |
@@ -3097,11 +3099,10 @@ static void vfio_err_notifier_handler(void *opaque)
|
|
|
218e99 |
* guest to contain the error.
|
|
|
218e99 |
*/
|
|
|
218e99 |
|
|
|
218e99 |
- error_report("%s (%04x:%02x:%02x.%x)"
|
|
|
218e99 |
- "Unrecoverable error detected...\n"
|
|
|
218e99 |
- "Please collect any data possible and then kill the guest",
|
|
|
218e99 |
- __func__, vdev->host.domain, vdev->host.bus,
|
|
|
218e99 |
- vdev->host.slot, vdev->host.function);
|
|
|
218e99 |
+ error_report("%s(%04x:%02x:%02x.%x) Unrecoverable error detected. "
|
|
|
218e99 |
+ "Please collect any data possible and then kill the guest",
|
|
|
218e99 |
+ __func__, vdev->host.domain, vdev->host.bus,
|
|
|
218e99 |
+ vdev->host.slot, vdev->host.function);
|
|
|
218e99 |
|
|
|
218e99 |
vm_stop(RUN_STATE_IO_ERROR);
|
|
|
218e99 |
}
|
|
|
218e99 |
@@ -3124,8 +3125,7 @@ static void vfio_register_err_notifier(VFIODevice *vdev)
|
|
|
218e99 |
}
|
|
|
218e99 |
|
|
|
218e99 |
if (event_notifier_init(&vdev->err_notifier, 0)) {
|
|
|
218e99 |
- error_report("vfio: Warning: "
|
|
|
218e99 |
- "Unable to init event notifier for error detection\n");
|
|
|
218e99 |
+ error_report("vfio: Unable to init event notifier for error detection");
|
|
|
218e99 |
vdev->pci_aer = false;
|
|
|
218e99 |
return;
|
|
|
218e99 |
}
|
|
|
218e99 |
@@ -3146,7 +3146,7 @@ static void vfio_register_err_notifier(VFIODevice *vdev)
|
|
|
218e99 |
|
|
|
218e99 |
ret = ioctl(vdev->fd, VFIO_DEVICE_SET_IRQS, irq_set);
|
|
|
218e99 |
if (ret) {
|
|
|
218e99 |
- error_report("vfio: Failed to set up error notification\n");
|
|
|
218e99 |
+ error_report("vfio: Failed to set up error notification");
|
|
|
218e99 |
qemu_set_fd_handler(*pfd, NULL, NULL, vdev);
|
|
|
218e99 |
event_notifier_cleanup(&vdev->err_notifier);
|
|
|
218e99 |
vdev->pci_aer = false;
|
|
|
218e99 |
@@ -3179,7 +3179,7 @@ static void vfio_unregister_err_notifier(VFIODevice *vdev)
|
|
|
218e99 |
|
|
|
218e99 |
ret = ioctl(vdev->fd, VFIO_DEVICE_SET_IRQS, irq_set);
|
|
|
218e99 |
if (ret) {
|
|
|
218e99 |
- error_report("vfio: Failed to de-assign error fd: %d\n", ret);
|
|
|
218e99 |
+ error_report("vfio: Failed to de-assign error fd: %m");
|
|
|
218e99 |
}
|
|
|
218e99 |
g_free(irq_set);
|
|
|
218e99 |
qemu_set_fd_handler(event_notifier_get_fd(&vdev->err_notifier),
|
|
|
218e99 |
--
|
|
|
218e99 |
1.7.1
|
|
|
218e99 |
|