Message ID | 20210107210726.269584-1-olvaffe@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/virtio: make sure context is created in gem open | expand |
On Thu, Jan 7, 2021 at 1:07 PM Chia-I Wu <olvaffe@gmail.com> wrote: > The context might still be missing when DRM_IOCTL_PRIME_FD_TO_HANDLE is > the first ioctl on the drm_file. > > Fixes: 72b48ae800da ("drm/virtio: enqueue virtio_gpu_create_context after > the first 3D ioctl") > Cc: Gurchetan Singh <gurchetansingh@chromium.org> > Cc: Gerd Hoffmann <kraxel@redhat.com> > Signed-off-by: Chia-I Wu <olvaffe@gmail.com> > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c > b/drivers/gpu/drm/virtio/virtgpu_gem.c > index c30c75ee83fc..8502400b2f9c 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -39,9 +39,6 @@ static int virtio_gpu_gem_create(struct drm_file *file, > int ret; > u32 handle; > > - if (vgdev->has_virgl_3d) > - virtio_gpu_create_context(dev, file); > - > ret = virtio_gpu_object_create(vgdev, params, &obj, NULL); > if (ret < 0) > return ret; > @@ -119,6 +116,11 @@ int virtio_gpu_gem_object_open(struct drm_gem_object > *obj, > if (!vgdev->has_virgl_3d) > goto out_notify; > > + /* the context might still be missing when the first ioctl is > + * DRM_IOCTL_MODE_CREATE_DUMB or DRM_IOCTL_PRIME_FD_TO_HANDLE > + */ > + virtio_gpu_create_context(obj->dev, file); > + > objs = virtio_gpu_array_alloc(1); > if (!objs) > return -ENOMEM; > -- > 2.29.2.729.g45daf8777d-goog > > Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
On Thu, Jan 07, 2021 at 01:07:26PM -0800, Chia-I Wu wrote: >The context might still be missing when DRM_IOCTL_PRIME_FD_TO_HANDLE is >the first ioctl on the drm_file. > >Fixes: 72b48ae800da ("drm/virtio: enqueue virtio_gpu_create_context after the first 3D ioctl") >Cc: Gurchetan Singh <gurchetansingh@chromium.org> >Cc: Gerd Hoffmann <kraxel@redhat.com> >Signed-off-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Anthoine Bourgeois <anthoine.bourgeois@gmail.com> >--- > drivers/gpu/drm/virtio/virtgpu_gem.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > >diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c >index c30c75ee83fc..8502400b2f9c 100644 >--- a/drivers/gpu/drm/virtio/virtgpu_gem.c >+++ b/drivers/gpu/drm/virtio/virtgpu_gem.c >@@ -39,9 +39,6 @@ static int virtio_gpu_gem_create(struct drm_file *file, > int ret; > u32 handle; > >- if (vgdev->has_virgl_3d) >- virtio_gpu_create_context(dev, file); >- > ret = virtio_gpu_object_create(vgdev, params, &obj, NULL); > if (ret < 0) > return ret; >@@ -119,6 +116,11 @@ int virtio_gpu_gem_object_open(struct drm_gem_object *obj, > if (!vgdev->has_virgl_3d) > goto out_notify; > >+ /* the context might still be missing when the first ioctl is >+ * DRM_IOCTL_MODE_CREATE_DUMB or DRM_IOCTL_PRIME_FD_TO_HANDLE >+ */ >+ virtio_gpu_create_context(obj->dev, file); >+ > objs = virtio_gpu_array_alloc(1); > if (!objs) > return -ENOMEM; >-- >2.29.2.729.g45daf8777d-goog > >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index c30c75ee83fc..8502400b2f9c 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -39,9 +39,6 @@ static int virtio_gpu_gem_create(struct drm_file *file, int ret; u32 handle; - if (vgdev->has_virgl_3d) - virtio_gpu_create_context(dev, file); - ret = virtio_gpu_object_create(vgdev, params, &obj, NULL); if (ret < 0) return ret; @@ -119,6 +116,11 @@ int virtio_gpu_gem_object_open(struct drm_gem_object *obj, if (!vgdev->has_virgl_3d) goto out_notify; + /* the context might still be missing when the first ioctl is + * DRM_IOCTL_MODE_CREATE_DUMB or DRM_IOCTL_PRIME_FD_TO_HANDLE + */ + virtio_gpu_create_context(obj->dev, file); + objs = virtio_gpu_array_alloc(1); if (!objs) return -ENOMEM;
The context might still be missing when DRM_IOCTL_PRIME_FD_TO_HANDLE is the first ioctl on the drm_file. Fixes: 72b48ae800da ("drm/virtio: enqueue virtio_gpu_create_context after the first 3D ioctl") Cc: Gurchetan Singh <gurchetansingh@chromium.org> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Chia-I Wu <olvaffe@gmail.com> --- drivers/gpu/drm/virtio/virtgpu_gem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)