On 4/12/25 16:20, Ryosuke Yasuoka wrote: > Pass array of pages of the scanout buffer [1] to shmem BO, allowing > drm_panic to work even if the BO is not vmapped. > > [1] https://lore.kernel.org/all/20250407140138.162383-3-jfale...@redhat.com/ > > Signed-off-by: Jocelyn Falempe <jfale...@redhat.com> > Signed-off-by: Ryosuke Yasuoka <ryasu...@redhat.com> > --- > drivers/gpu/drm/virtio/virtgpu_plane.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c > b/drivers/gpu/drm/virtio/virtgpu_plane.c > index a6f5a78f436a..2ff57d559c86 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -500,11 +500,19 @@ static int virtio_drm_get_scanout_buffer(struct > drm_plane *plane, > > bo = gem_to_virtio_gpu_obj(plane->state->fb->obj[0]); > > - /* Only support mapped shmem bo */ > - if (virtio_gpu_is_vram(bo) || bo->base.base.import_attach || > !bo->base.vaddr) > + if (virtio_gpu_is_vram(bo) || bo->base.base.import_attach) > return -ENODEV; > > - iosys_map_set_vaddr(&sb->map[0], bo->base.vaddr); > + if (bo->base.vaddr) > + iosys_map_set_vaddr(&sb->map[0], bo->base.vaddr); > + else { > + struct drm_gem_shmem_object *shmem = &bo->base; > + > + if (!shmem->pages) > + return -ENODEV; > + /* map scanout buffer later */ > + sb->pages = shmem->pages; > + } > > sb->format = plane->state->fb->format; > sb->height = plane->state->fb->height; > > base-commit: e7bb7d44c3b97aea1f0e354c6499900154ac67f2
Rebased on top of [1], fixed checkpatch warning about braces and applied to misc-next. Thanks! [1] https://lore.kernel.org/all/20250414131507.566072-1-tzimmerm...@suse.de/ -- Best regards, Dmitry