[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200325090741.21957-1-bigbeeshane@gmail.com>
Date: Wed, 25 Mar 2020 09:07:38 +0000
From: Shane Francis <bigbeeshane@...il.com>
To: dri-devel@...ts.freedesktop.org
Cc: amd-gfx-request@...ts.freedesktop.org,
linux-kernel@...r.kernel.org, bigbeeshane@...il.com,
alexander.deucher@....com, christian.koenig@....com,
mripard@...nel.org, airlied@...ux.ie, David1.Zhou@....com
Subject: [PATCH v4 0/3] AMDGPU / RADEON / DRM Fix mapping of user pages
This patch set is to fix a bug in amdgpu / radeon drm that results in
a crash when dma_map_sg combines elemnets within a scatterlist table.
There are 2 shortfalls in the current kernel.
1) AMDGPU / RADEON assumes that the requested and created scatterlist
table lengths using from dma_map_sg are equal. This may not be the
case using the newer dma-iommu implementation
2) drm_prime does not fetch the length of the scatterlist
via the correct dma macro, this can use the incorrect length
being used (>0) in places where dma_map_sg has updated the table
elements.
The sg_dma_len macro is representative of the length of the sg item
after dma_map_sg
Example Crash :
> [drm:amdgpu_ttm_backend_bind [amdgpu]] *ERROR* failed to pin userptr
This happens in OpenCL applications, causing them to crash or hang, on
either amdgpu-pro or ROCm OpenCL implementations
I have verified this fixes the above on kernel 5.5 and 5.5rc using an
AMD Vega 64 GPU
Shane Francis (3):
drm/prime: use dma length macro when mapping sg to arrays
drm/amdgpu: fix scatter-gather mapping with user pages
drm/radeon: fix scatter-gather mapping with user pages
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
drivers/gpu/drm/drm_prime.c | 2 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
--
2.26.0
Powered by blists - more mailing lists