qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v13 12/22] vfio: Add notifier callback to parent


From: Dong Jia Shi
Subject: Re: [Qemu-devel] [PATCH v13 12/22] vfio: Add notifier callback to parent's ops structure of mdev
Date: Wed, 16 Nov 2016 14:37:59 +0800
User-agent: Mutt/1.7.0 (2016-08-17)

* Kirti Wankhede <address@hidden> [2016-11-15 20:59:55 +0530]:

Hi Kirti,

[...]

> diff --git a/drivers/vfio/mdev/vfio_mdev.c b/drivers/vfio/mdev/vfio_mdev.c
> index ffc36758cb84..4fc63db38829 100644
> --- a/drivers/vfio/mdev/vfio_mdev.c
> +++ b/drivers/vfio/mdev/vfio_mdev.c
> @@ -24,6 +24,15 @@
>  #define DRIVER_AUTHOR   "NVIDIA Corporation"
>  #define DRIVER_DESC     "VFIO based driver for Mediated device"
> 
> +static int vfio_mdev_notifier(struct notifier_block *nb, unsigned long 
> action,
> +                           void *data)
> +{
> +     struct mdev_device *mdev = container_of(nb, struct mdev_device, nb);
> +     struct parent_device *parent = mdev->parent;
> +
> +     return parent->ops->notifier(mdev, action, data);
> +}
> +
>  static int vfio_mdev_open(void *device_data)
>  {
>       struct mdev_device *mdev = device_data;
> @@ -36,9 +45,18 @@ static int vfio_mdev_open(void *device_data)
>       if (!try_module_get(THIS_MODULE))
>               return -ENODEV;
> 
> +     if (likely(parent->ops->notifier)) {
> +             mdev->nb.notifier_call = vfio_mdev_notifier;
> +             if (vfio_register_notifier(&mdev->dev, &mdev->nb))
> +                     pr_err("Failed to register notifier for mdev\n");
I think we should just return here if the error value is not -ENOTTY.

> +     }
> +
>       ret = parent->ops->open(mdev);
> -     if (ret)
> +     if (ret) {
> +             if (likely(parent->ops->notifier))
> +                     vfio_unregister_notifier(&mdev->dev, &mdev->nb);
>               module_put(THIS_MODULE);
> +     }
> 
>       return ret;
>  }
[...]

-- 
Dong Jia




reply via email to

[Prev in Thread] Current Thread [Next in Thread]