Re: [PATCH v2] drm/loongson: use managed KMS polling

From: Myeonghun Pak

Date: Wed May 13 2026 - 02:57:09 EST


Hi Huacai,

Thanks, I sent a v3 with the subject fixed and added the Reviewed-by and
Acked-by tags.

Best regards,
Myeonghun

2026년 5월 12일 (화) 오후 5:11, Huacai Chen <chenhuacai@xxxxxxxxxx>님이 작성:
>
> On Tue, May 12, 2026 at 2:37 PM Myeonghun Pak <mhun512@xxxxxxxxx> wrote:
> >
> > 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.
> In the subject line please s/use/Use/g, others LGTM.
> Reviewed-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
>
> >
> > Fixes: f39db26c5428 ("drm: Add kms driver for loongson display controller")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Co-developed-by: Ijae Kim <ae878000@xxxxxxxxx>
> > Signed-off-by: Ijae Kim <ae878000@xxxxxxxxx>
> > Signed-off-by: Myeonghun Pak <mhun512@xxxxxxxxx>
> > ---
> > Changes in v2:
> > - Switch to drmm_kms_helper_poll_init() as suggested by Icenowy Zheng
> > and Thomas Zimmermann instead of adding manual cleanup paths.
> >
> > drivers/gpu/drm/loongson/lsdc_drv.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
> > index abf5bf68ee..4b97750897 100644
> > --- a/drivers/gpu/drm/loongson/lsdc_drv.c
> > +++ b/drivers/gpu/drm/loongson/lsdc_drv.c
> > @@ -292,7 +292,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);
> > --
> > 2.47.1
> >