mirror of https://gitee.com/openkylin/linux.git
drm/radeon: fix bo creation retry path
Retry label was at wrong place in function leading to memory leak. Cc: <stable@vger.kernel.org> Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
949c4a34af
commit
d1c7871ddb
|
@ -136,7 +136,6 @@ int radeon_bo_create(struct radeon_device *rdev,
|
||||||
acc_size = ttm_bo_dma_acc_size(&rdev->mman.bdev, size,
|
acc_size = ttm_bo_dma_acc_size(&rdev->mman.bdev, size,
|
||||||
sizeof(struct radeon_bo));
|
sizeof(struct radeon_bo));
|
||||||
|
|
||||||
retry:
|
|
||||||
bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL);
|
bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL);
|
||||||
if (bo == NULL)
|
if (bo == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -150,6 +149,8 @@ int radeon_bo_create(struct radeon_device *rdev,
|
||||||
bo->surface_reg = -1;
|
bo->surface_reg = -1;
|
||||||
INIT_LIST_HEAD(&bo->list);
|
INIT_LIST_HEAD(&bo->list);
|
||||||
INIT_LIST_HEAD(&bo->va);
|
INIT_LIST_HEAD(&bo->va);
|
||||||
|
|
||||||
|
retry:
|
||||||
radeon_ttm_placement_from_domain(bo, domain);
|
radeon_ttm_placement_from_domain(bo, domain);
|
||||||
/* Kernel allocation are uninterruptible */
|
/* Kernel allocation are uninterruptible */
|
||||||
down_read(&rdev->pm.mclk_lock);
|
down_read(&rdev->pm.mclk_lock);
|
||||||
|
|
Loading…
Reference in New Issue