OSDN Git Service

drm: allow limiting the scatter list size.
authorGerd Hoffmann <kraxel@redhat.com>
Mon, 7 Sep 2020 11:24:25 +0000 (13:24 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 9 Sep 2020 05:58:56 +0000 (07:58 +0200)
commit707d561f77b5e2a6f90c9786bee44ee7a8dedc7e
tree0d61c5038b1f4e8d9f5c0640b7349058600cb9d7
parent04e89ff364dec3dc261243c2f0780635448bc466
drm: allow limiting the scatter list size.

Add drm_device argument to drm_prime_pages_to_sg(), so we can
call dma_max_mapping_size() to figure the segment size limit
and call into __sg_alloc_table_from_pages() with the correct
limit.

This fixes virtio-gpu with sev.  Possibly it'll fix other bugs
too given that drm seems to totaly ignore segment size limits
so far ...

v2: place max_segment in drm driver not gem object.
v3: move max_segment next to the other gem fields.
v4: just use dma_max_mapping_size().

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20200907112425.15610-2-kraxel@redhat.com
14 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
drivers/gpu/drm/drm_gem_shmem_helper.c
drivers/gpu/drm/drm_prime.c
drivers/gpu/drm/etnaviv/etnaviv_gem.c
drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
drivers/gpu/drm/msm/msm_gem.c
drivers/gpu/drm/msm/msm_gem_prime.c
drivers/gpu/drm/nouveau/nouveau_prime.c
drivers/gpu/drm/radeon/radeon_prime.c
drivers/gpu/drm/rockchip/rockchip_drm_gem.c
drivers/gpu/drm/tegra/gem.c
drivers/gpu/drm/vgem/vgem_drv.c
drivers/gpu/drm/xen/xen_drm_front_gem.c
include/drm/drm_prime.h