diff mbox

vfio/pci: Report errors from qdev_unplug() via device request

Message ID 20170221190955.8616.21658.stgit@gimli.home
State New
Headers show

Commit Message

Alex Williamson Feb. 21, 2017, 7:10 p.m. UTC
Currently we ignore this error, report it with error_reportf_err()

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
---
 hw/vfio/pci.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Eric Auger Feb. 21, 2017, 9:28 p.m. UTC | #1
Hi Alex,

On 21/02/2017 20:10, Alex Williamson wrote:
> Currently we ignore this error, report it with error_reportf_err()
> 
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>

Eric

> ---
>  hw/vfio/pci.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> index 332f41d6627f..f2ba9b6cfafc 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -2506,12 +2506,16 @@ static void vfio_unregister_err_notifier(VFIOPCIDevice *vdev)
>  static void vfio_req_notifier_handler(void *opaque)
>  {
>      VFIOPCIDevice *vdev = opaque;
> +    Error *err = NULL;
>  
>      if (!event_notifier_test_and_clear(&vdev->req_notifier)) {
>          return;
>      }
>  
> -    qdev_unplug(&vdev->pdev.qdev, NULL);
> +    qdev_unplug(&vdev->pdev.qdev, &err);
> +    if (err) {
> +        error_reportf_err(err, WARN_PREFIX, vdev->vbasedev.name);
> +    }
>  }
>  
>  static void vfio_register_req_notifier(VFIOPCIDevice *vdev)
>
Philippe Mathieu-Daudé Feb. 21, 2017, 9:37 p.m. UTC | #2
On 02/21/2017 06:28 PM, Auger Eric wrote:
> Hi Alex,
>
> On 21/02/2017 20:10, Alex Williamson wrote:
>> Currently we ignore this error, report it with error_reportf_err()
>>
>> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> Reviewed-by: Eric Auger <eric.auger@redhat.com>
>
> Eric

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>
>> ---
>>  hw/vfio/pci.c |    6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
>> index 332f41d6627f..f2ba9b6cfafc 100644
>> --- a/hw/vfio/pci.c
>> +++ b/hw/vfio/pci.c
>> @@ -2506,12 +2506,16 @@ static void vfio_unregister_err_notifier(VFIOPCIDevice *vdev)
>>  static void vfio_req_notifier_handler(void *opaque)
>>  {
>>      VFIOPCIDevice *vdev = opaque;
>> +    Error *err = NULL;
>>
>>      if (!event_notifier_test_and_clear(&vdev->req_notifier)) {
>>          return;
>>      }
>>
>> -    qdev_unplug(&vdev->pdev.qdev, NULL);
>> +    qdev_unplug(&vdev->pdev.qdev, &err);
>> +    if (err) {
>> +        error_reportf_err(err, WARN_PREFIX, vdev->vbasedev.name);
>> +    }
>>  }
>>
>>  static void vfio_register_req_notifier(VFIOPCIDevice *vdev)
>>
>
diff mbox

Patch

diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 332f41d6627f..f2ba9b6cfafc 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -2506,12 +2506,16 @@  static void vfio_unregister_err_notifier(VFIOPCIDevice *vdev)
 static void vfio_req_notifier_handler(void *opaque)
 {
     VFIOPCIDevice *vdev = opaque;
+    Error *err = NULL;
 
     if (!event_notifier_test_and_clear(&vdev->req_notifier)) {
         return;
     }
 
-    qdev_unplug(&vdev->pdev.qdev, NULL);
+    qdev_unplug(&vdev->pdev.qdev, &err);
+    if (err) {
+        error_reportf_err(err, WARN_PREFIX, vdev->vbasedev.name);
+    }
 }
 
 static void vfio_register_req_notifier(VFIOPCIDevice *vdev)