On Fri, Oct 18, 2024 at 5:46 AM Lang Yu <lang.yu@xxxxxxx> wrote: > > Free sg table when dma_map_sgtable() failed to avoid memory leak. > > Signed-off-by: Lang Yu <lang.yu@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index 74adb983ab03..0637414fc70e 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -812,7 +812,7 @@ static int amdgpu_ttm_tt_pin_userptr(struct ttm_device *bdev, > /* Map SG to device */ > r = dma_map_sgtable(adev->dev, ttm->sg, direction, 0); > if (r) > - goto release_sg; > + goto release_sg_table; > > /* convert SG to linear array of pages and dma addresses */ > drm_prime_sg_to_dma_addr_array(ttm->sg, gtt->ttm.dma_address, > @@ -820,6 +820,8 @@ static int amdgpu_ttm_tt_pin_userptr(struct ttm_device *bdev, > > return 0; > > +release_sg_table: > + sg_free_table(ttm->sg); > release_sg: > kfree(ttm->sg); > ttm->sg = NULL; > -- > 2.25.1 >