Le mardi 15 septembre 2026 à 19:57 +0800, Guangshuo Li a écrit : > The decoder probe allocates core_workqueue for latency-based decoder > architectures. The probe failure paths destroy the workqueue, but the > normal remove path only destroys decode_workqueue. > > As a result, removing a latency-based decoder leaves core_workqueue LAT is an abbreviation to for the core responsible for entropy decoding. I don't know what it translate to, but its not "latency", I'll do the minor edit. It does reduce decoding latency though :-D > allocated after the device lifetime has ended. > > Destroy core_workqueue during remove for latency-based decoder > architectures, matching the cleanup performed by the probe failure > paths. > > This issue was found by manual code inspection. > > Fixes: 365e4ba01df4 ("media: mtk-vcodec: Add work queue for core hardware decode") > Cc: stable@vger.kernel.org > Signed-off-by: Guangshuo Li Reviewed-by: Nicolas Dufresne > --- > .../media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c > index e936ed8dffba..426d060d937c 100644 > --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c > +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c > @@ -570,6 +570,8 @@ static void mtk_vcodec_dec_remove(struct platform_device *pdev) > struct mtk_vcodec_dec_dev *dev = platform_get_drvdata(pdev); > > destroy_workqueue(dev->decode_workqueue); > + if (IS_VDEC_LAT_ARCH(dev->vdec_pdata->hw_arch)) > + destroy_workqueue(dev->core_workqueue); > > if (media_devnode_is_registered(dev->mdev_dec.devnode)) { > media_device_unregister(&dev->mdev_dec);