Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/imx/lcdc: Fix double-free of driver data

The struct imx_lcdc driver data is allocated using devm_drm_dev_alloc()
so it must not be explicitly kfree()d.

Also drm_kms_helper_poll_fini() should not be called as there is no
matching drm_kms_helper_poll_init(). So drop the release function
completely.

Fixes: c87e859cdeb5 ("drm/imx/lcdc: Implement DRM driver for imx25")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230706092731.2630232-1-u.kleine-koenig@pengutronix.de

authored by

Uwe Kleine-König and committed by
Philipp Zabel
ff367087 209e8d26

-9
-9
drivers/gpu/drm/imx/lcdc/imx-lcdc.c
··· 342 342 .atomic_commit_tail = drm_atomic_helper_commit_tail_rpm, 343 343 }; 344 344 345 - static void imx_lcdc_release(struct drm_device *drm) 346 - { 347 - struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(drm); 348 - 349 - drm_kms_helper_poll_fini(drm); 350 - kfree(lcdc); 351 - } 352 - 353 345 DEFINE_DRM_GEM_DMA_FOPS(imx_lcdc_drm_fops); 354 346 355 347 static struct drm_driver imx_lcdc_drm_driver = { 356 348 .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC, 357 349 .fops = &imx_lcdc_drm_fops, 358 350 DRM_GEM_DMA_DRIVER_OPS_VMAP, 359 - .release = imx_lcdc_release, 360 351 .name = "imx-lcdc", 361 352 .desc = "i.MX LCDC driver", 362 353 .date = "20200716",