From nobody Mon May 25 03:55:48 2026 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEA7C383C96 for ; Tue, 19 May 2026 07:42:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779176529; cv=none; b=L27+YD6jUzkjBW5Ek0mjkbwhvfjb0A+ki9isuDTi2XbnxWevmZXHIjl4O6/8Nk4Po20czfW8B1ZanZCXmdpkzcdAMiZrXITVaoFfh163hzwk2kdOSCHd6wGAfNBGymeCh5ad4NDSbq0x8/k45d9y4llO/RhNcQxgswIXD07UK+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779176529; c=relaxed/simple; bh=Byl5oaGhAZdAGzksaOa8jxmgoNYp/2GbN7l3r2GPHsU=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=T9VazHhx7ovNrZa9UhWZmQlJ5ooP35ATXDwALWfTOacUAaNL7jo/wwceBs8NpdYwbAADxFnamSbj1dM9bp9AoU9PzUZLPzIbMlkIMiQN8R4oUSuvrD1iToGFH/JmZXq+KA0OpBsp47MuEJg2r9dzmjNfP+3/1UvqfHSyDM7zXXM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 39d0c53e535611f1aa26b74ffac11d73-20260519 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.12,REQID:147676b3-0a48-4bf0-a383-389b827aa062,IP:0,U RL:0,TC:0,Content:-5,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:20 X-CID-META: VersionHash:e7bac3a,CLOUDID:18729937a79218eecfc03e4b8a614fbb,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:102|123|850|865|898,TC:nil,Content:0|15| 50,EDM:5,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0, OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 39d0c53e535611f1aa26b74ffac11d73-20260519 X-User: yaolu@kylinos.cn Received: from localhost.localdomain [(10.44.16.150)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_256_GCM_SHA384 256/256) with ESMTP id 915976552; Tue, 19 May 2026 15:42:02 +0800 From: yaolu@kylinos.cn To: lvjianmin@loongson.cn, wuqianhai@loongson.cn Cc: chenhuacai@kernel.org, jeffbai@aosc.io, xry111@xry111.site, zhengxingda@iscas.ac.cn, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Lu Yao Subject: [PATH] drm/loongson: add cleanup path for lsdc_ttm_init Date: Tue, 19 May 2026 15:41:58 +0800 Message-Id: <20260519074158.144134-1-yaolu@kylinos.cn> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lu Yao There has resource leak when TTM_PL_VRAM or TTM_PL_TT man range init failed. Signed-off-by: Lu Yao --- drivers/gpu/drm/loongson/lsdc_ttm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/loongson/lsdc_ttm.c b/drivers/gpu/drm/loongson= /lsdc_ttm.c index d7441d96a0dc..c84bc582f77c 100644 --- a/drivers/gpu/drm/loongson/lsdc_ttm.c +++ b/drivers/gpu/drm/loongson/lsdc_ttm.c @@ -554,7 +554,7 @@ int lsdc_ttm_init(struct lsdc_device *ldev) =20 ret =3D ttm_range_man_init(&ldev->bdev, TTM_PL_VRAM, false, num_vram_page= s); if (unlikely(ret)) - return ret; + goto err_vram; =20 drm_info(ddev, "VRAM: %lu pages ready\n", num_vram_pages); =20 @@ -565,11 +565,17 @@ int lsdc_ttm_init(struct lsdc_device *ldev) =20 ret =3D ttm_range_man_init(&ldev->bdev, TTM_PL_TT, true, num_gtt_pages); if (unlikely(ret)) - return ret; + goto err_gtt; =20 drm_info(ddev, "GTT: %lu pages ready\n", num_gtt_pages); =20 return drmm_add_action_or_reset(ddev, lsdc_ttm_fini, ldev); + +err_gtt: + ttm_range_man_fini(&ldev->bdev, TTM_PL_VRAM); +err_vram: + ttm_device_fini(&ldev->bdev); + return ret; } =20 void lsdc_ttm_debugfs_init(struct lsdc_device *ldev) --=20 2.25.1