drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
[Why] gmc bo will be pinned during loading amdgpu and reset in SRIOV while only unpinned in unload amdgpu [How] add amdgpu_in_reset and sriov judgement to skip pin bo v2: fix wrong judgement Signed-off-by: Jingwen Chen <Jingwen.Chen2@amd.com> Reviewed-by: Horace Chen <horace.chen@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
85dfc1d692
commit
948e7ce014
|
@ -992,10 +992,14 @@ static int gmc_v10_0_gart_enable(struct amdgpu_device *adev)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
|
||||||
|
goto skip_pin_bo;
|
||||||
|
|
||||||
r = amdgpu_gart_table_vram_pin(adev);
|
r = amdgpu_gart_table_vram_pin(adev);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
skip_pin_bo:
|
||||||
r = adev->gfxhub.funcs->gart_enable(adev);
|
r = adev->gfxhub.funcs->gart_enable(adev);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
|
@ -1717,10 +1717,14 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
|
||||||
|
goto skip_pin_bo;
|
||||||
|
|
||||||
r = amdgpu_gart_table_vram_pin(adev);
|
r = amdgpu_gart_table_vram_pin(adev);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
skip_pin_bo:
|
||||||
r = adev->gfxhub.funcs->gart_enable(adev);
|
r = adev->gfxhub.funcs->gart_enable(adev);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
Loading…
Reference in New Issue