Re: [Intel-gfx] [PATCH 12/13] vfio/gvt: Fix open/close when multiple device FDs are open
On Wed, Jul 14 2021, Jason Gunthorpe wrote: > The user can open multiple device FDs if it likes, however the open > function calls vfio_register_notifier() on device global state. Calling > vfio_register_notifier() twice will trigger a WARN_ON from > notifier_chain_register() and the first close will wrongly delete the > notifier and more. > > Since these really want the new open/close_device() semantics just change > the function over. > > Signed-off-by: Jason Gunthorpe > --- > drivers/gpu/drm/i915/gvt/kvmgt.c | 8 > 1 file changed, 4 insertions(+), 4 deletions(-) Reviewed-by: Cornelia Huck ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 12/13] vfio/gvt: Fix open/close when multiple device FDs are open
On 2021.07.14 21:20:41 -0300, Jason Gunthorpe wrote: > The user can open multiple device FDs if it likes, however the open > function calls vfio_register_notifier() on device global state. Calling > vfio_register_notifier() twice will trigger a WARN_ON from > notifier_chain_register() and the first close will wrongly delete the > notifier and more. > > Since these really want the new open/close_device() semantics just change > the function over. > > Signed-off-by: Jason Gunthorpe > --- > drivers/gpu/drm/i915/gvt/kvmgt.c | 8 > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c > b/drivers/gpu/drm/i915/gvt/kvmgt.c > index 1ac98f8aba31e6..7efa386449d104 100644 > --- a/drivers/gpu/drm/i915/gvt/kvmgt.c > +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c > @@ -885,7 +885,7 @@ static int intel_vgpu_group_notifier(struct > notifier_block *nb, > return NOTIFY_OK; > } > > -static int intel_vgpu_open(struct mdev_device *mdev) > +static int intel_vgpu_open_device(struct mdev_device *mdev) > { > struct intel_vgpu *vgpu = mdev_get_drvdata(mdev); > struct kvmgt_vdev *vdev = kvmgt_vdev(vgpu); > @@ -1004,7 +1004,7 @@ static void __intel_vgpu_release(struct intel_vgpu > *vgpu) > vgpu->handle = 0; > } > > -static void intel_vgpu_release(struct mdev_device *mdev) > +static void intel_vgpu_close_device(struct mdev_device *mdev) > { > struct intel_vgpu *vgpu = mdev_get_drvdata(mdev); > > @@ -1753,8 +1753,8 @@ static struct mdev_parent_ops intel_vgpu_ops = { > .create = intel_vgpu_create, > .remove = intel_vgpu_remove, > > - .open = intel_vgpu_open, > - .release= intel_vgpu_release, > + .open_device= intel_vgpu_open_device, > + .close_device = intel_vgpu_close_device, > > .read = intel_vgpu_read, > .write = intel_vgpu_write, Looks ok to me. Thanks! Reviewed-by: Zhenyu Wang signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 12/13] vfio/gvt: Fix open/close when multiple device FDs are open
The user can open multiple device FDs if it likes, however the open function calls vfio_register_notifier() on device global state. Calling vfio_register_notifier() twice will trigger a WARN_ON from notifier_chain_register() and the first close will wrongly delete the notifier and more. Since these really want the new open/close_device() semantics just change the function over. Signed-off-by: Jason Gunthorpe --- drivers/gpu/drm/i915/gvt/kvmgt.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index 1ac98f8aba31e6..7efa386449d104 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -885,7 +885,7 @@ static int intel_vgpu_group_notifier(struct notifier_block *nb, return NOTIFY_OK; } -static int intel_vgpu_open(struct mdev_device *mdev) +static int intel_vgpu_open_device(struct mdev_device *mdev) { struct intel_vgpu *vgpu = mdev_get_drvdata(mdev); struct kvmgt_vdev *vdev = kvmgt_vdev(vgpu); @@ -1004,7 +1004,7 @@ static void __intel_vgpu_release(struct intel_vgpu *vgpu) vgpu->handle = 0; } -static void intel_vgpu_release(struct mdev_device *mdev) +static void intel_vgpu_close_device(struct mdev_device *mdev) { struct intel_vgpu *vgpu = mdev_get_drvdata(mdev); @@ -1753,8 +1753,8 @@ static struct mdev_parent_ops intel_vgpu_ops = { .create = intel_vgpu_create, .remove = intel_vgpu_remove, - .open = intel_vgpu_open, - .release= intel_vgpu_release, + .open_device= intel_vgpu_open_device, + .close_device = intel_vgpu_close_device, .read = intel_vgpu_read, .write = intel_vgpu_write, -- 2.32.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx