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
Showing
- drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c 2 additions, 1 deletiondrivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
- drivers/gpu/drm/drm_gem_shmem_helper.c 1 addition, 1 deletiondrivers/gpu/drm/drm_gem_shmem_helper.c
- drivers/gpu/drm/drm_prime.c 10 additions, 3 deletionsdrivers/gpu/drm/drm_prime.c
- drivers/gpu/drm/etnaviv/etnaviv_gem.c 2 additions, 1 deletiondrivers/gpu/drm/etnaviv/etnaviv_gem.c
- drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c 1 addition, 1 deletiondrivers/gpu/drm/etnaviv/etnaviv_gem_prime.c
- drivers/gpu/drm/msm/msm_gem.c 1 addition, 1 deletiondrivers/gpu/drm/msm/msm_gem.c
- drivers/gpu/drm/msm/msm_gem_prime.c 1 addition, 1 deletiondrivers/gpu/drm/msm/msm_gem_prime.c
- drivers/gpu/drm/nouveau/nouveau_prime.c 1 addition, 1 deletiondrivers/gpu/drm/nouveau/nouveau_prime.c
- drivers/gpu/drm/radeon/radeon_prime.c 1 addition, 1 deletiondrivers/gpu/drm/radeon/radeon_prime.c
- drivers/gpu/drm/rockchip/rockchip_drm_gem.c 3 additions, 2 deletionsdrivers/gpu/drm/rockchip/rockchip_drm_gem.c
- drivers/gpu/drm/tegra/gem.c 1 addition, 1 deletiondrivers/gpu/drm/tegra/gem.c
- drivers/gpu/drm/vgem/vgem_drv.c 1 addition, 1 deletiondrivers/gpu/drm/vgem/vgem_drv.c
- drivers/gpu/drm/xen/xen_drm_front_gem.c 2 additions, 1 deletiondrivers/gpu/drm/xen/xen_drm_front_gem.c
- include/drm/drm_prime.h 2 additions, 1 deletioninclude/drm/drm_prime.h
Loading
Please register or sign in to comment