On 3/8/22 16:17, Dmitry Osipenko wrote:
> @@ -246,20 +246,28 @@ static int virtio_gpu_plane_prepare_fb(struct drm_plane 
> *plane,
>       struct virtio_gpu_device *vgdev = dev->dev_private;
>       struct virtio_gpu_framebuffer *vgfb;
>       struct virtio_gpu_object *bo;
> +     int err;
>  
>       if (!new_state->fb)
>               return 0;
>  
>       vgfb = to_virtio_gpu_framebuffer(new_state->fb);
>       bo = gem_to_virtio_gpu_obj(vgfb->base.obj[0]);
> -     if (!bo || (plane->type == DRM_PLANE_TYPE_PRIMARY && !bo->guest_blob))
> +
> +     err = virtio_gpu_gem_pin(bo);
> +     if (err)
> +             return err;

I just noticed that this produces a refcount debug warning because I
missed to initialize the refcount when BO is created. That warning splat
was hidden by a huge lockdep splat produced by
drm_aperture_remove_conflicting_pci_framebuffers(), which probably
should be fixed. I'll correct it in v2.

Reply via email to