otherwise the drm_plane is not released Signed-off-by: Flora Cui <flora.cui@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c index af3a2f8c12b4..0bf697b72ad0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c @@ -392,19 +392,14 @@ static struct drm_plane *amdgpu_vkms_plane_init(struct drm_device *dev, struct drm_plane *plane; int ret; - plane = kzalloc(sizeof(*plane), GFP_KERNEL); - if (!plane) - return ERR_PTR(-ENOMEM); - - ret = drm_universal_plane_init(dev, plane, 1 << index, - &amdgpu_vkms_plane_funcs, - amdgpu_vkms_formats, - ARRAY_SIZE(amdgpu_vkms_formats), - NULL, type, NULL); - if (ret) { - kfree(plane); - return ERR_PTR(ret); - } + plane = __drmm_universal_plane_alloc(dev, sizeof(*plane), 0, 1 << index, + &amdgpu_vkms_plane_funcs, + amdgpu_vkms_formats, + ARRAY_SIZE(amdgpu_vkms_formats), + NULL, type, NULL); + + if (IS_ERR(plane)) + return plane; drm_plane_helper_add(plane, &amdgpu_vkms_primary_helper_funcs); -- 2.25.1