diff options
author | Monk Liu <Monk.Liu@amd.com> | 2020-02-06 23:55:58 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2020-02-25 11:01:25 -0500 |
commit | 6325b38d892b68902e38a9953abb6d42bfd389fb (patch) | |
tree | 6237bfe490e37e679cc3db9f47d50c4ba619b342 /drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | |
parent | 9cfb06920e2b4ea9ae903be640927b8da0fd5b68 (diff) | |
download | linux-6325b38d892b68902e38a9953abb6d42bfd389fb.tar.gz linux-6325b38d892b68902e38a9953abb6d42bfd389fb.tar.bz2 linux-6325b38d892b68902e38a9953abb6d42bfd389fb.zip |
drm/amdgpu: fix colliding of preemption
what:
some os preemption path is messed up with world switch preemption
fix:
cleanup those logics so os preemption not mixed with world switch
this patch is a general fix for issues comes from SRIOV MCBP, but
there is still UMD side issues not resovlved yet, so this patch
cannot fix all world switch bug.
Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Acked-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c index a2ee30b16212..7854c053e85d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c @@ -70,7 +70,8 @@ uint64_t amdgpu_sdma_get_csa_mc_addr(struct amdgpu_ring *ring, uint32_t index = 0; int r; - if (vmid == 0 || !amdgpu_mcbp) + /* don't enable OS preemption on SDMA under SRIOV */ + if (amdgpu_sriov_vf(adev) || vmid == 0 || !amdgpu_mcbp) return 0; r = amdgpu_sdma_get_index_from_ring(ring, &index); |