summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMyeonghun Pak <mhun512@gmail.com>2026-05-13 15:57:00 +0900
committerThomas Zimmermann <tzimmermann@suse.de>2026-05-15 08:50:54 +0200
commit0a9c56dd387605d17dabeedd9fdd2c4c1d0bab7b (patch)
treefcc858dc1da068c7a87b5641850f7db976c6a9f2 /drivers
parent1d59f36e95f7f7134db0e313c9d787cb0adb2153 (diff)
downloadlinux-next-0a9c56dd387605d17dabeedd9fdd2c4c1d0bab7b.tar.gz
linux-next-0a9c56dd387605d17dabeedd9fdd2c4c1d0bab7b.zip
drm/loongson: Use managed KMS polling
lsdc_pci_probe() initializes KMS polling before setting up vblank support, requesting the IRQ and registering the DRM device. If any of those later steps fails, probe returns without finalizing polling. The driver also never finalizes polling on regular removal. Use drmm_kms_helper_poll_init() so polling is tied to the DRM device lifetime and automatically finalized on probe failure and device removal. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Fixes: f39db26c5428 ("drm: Add kms driver for loongson display controller") Cc: stable@vger.kernel.org Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Jianmin Lv <lvjianmin@loongson.cn> Reviewed-by: Huacai Chen <chenhuacai@loongson.cn> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patch.msgid.link/20260513065706.23803-1-mhun512@gmail.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/loongson/lsdc_drv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
index 1ece1ea42f78..34405073c4d4 100644
--- a/drivers/gpu/drm/loongson/lsdc_drv.c
+++ b/drivers/gpu/drm/loongson/lsdc_drv.c
@@ -293,7 +293,7 @@ static int lsdc_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
vga_client_register(pdev, lsdc_vga_set_decode);
- drm_kms_helper_poll_init(ddev);
+ drmm_kms_helper_poll_init(ddev);
if (loongson_vblank) {
ret = drm_vblank_init(ddev, descp->num_of_crtc);