mirror_ubuntu-kernels/drivers/gpu/drm
Maxime Ripard fe7289e218
drm/vc4: vec: Switch to drmm_kzalloc
Our internal structure that stores the DRM entities structure is allocated
through a device-managed kzalloc.

This means that this will eventually be freed whenever the device is
removed. In our case, the most likely source of removal is that the main
device is going to be unbound, and component_unbind_all() is being run.

However, it occurs while the DRM device is still registered, which will
create dangling pointers, eventually resulting in use-after-free.

Switch to a DRM-managed allocation to keep our structure until the DRM
driver doesn't need it anymore.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20220711173939.1132294-57-maxime@cerno.tech
2022-07-13 10:46:12 +02:00
..
amd Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
arm drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
armada drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
aspeed drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
ast drm/ast: Enable primary plane with CRTC 2022-06-27 11:10:43 +02:00
atmel-hlcdc drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
bridge drm/bridge: panel: Introduce drmm_of_get_bridge 2022-07-13 10:46:06 +02:00
display drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2022-05-17 12:20:04 +10:00
exynos Two cleanups 2022-07-13 14:17:35 +10:00
fsl-dcu drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
gma500 drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
gud drm: Drop drm_blend.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
hisilicon drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
hyperv drm/hyperv-drm: Include framebuffer and EDID headers 2022-06-22 16:07:38 +02:00
i2c drm: Remove linux/i2c.h from drm_crtc.h 2022-07-05 21:15:23 +03:00
i810
i915 Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
imx drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
ingenic drm/ingenic: Use the new PM macros 2022-07-09 16:52:14 +01:00
kmb drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
lib
lima
logicvc drm/logicvc: add missing of_node_put() in logicvc_layers_init() 2022-06-24 17:23:38 +02:00
mcde drm: Remove linux/i2c.h from drm_crtc.h 2022-07-05 21:15:23 +03:00
mediatek Mediatek DRM Next for Linux 5.20 2022-07-12 17:01:42 +10:00
meson drm: Drop drm_blend.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
mga
mgag200 drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
msm Merge tag 'drm-msm-next-2022-07-10' of https://gitlab.freedesktop.org/drm/msm into drm-next 2022-07-13 10:55:53 +10:00
mxsfb drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
nouveau Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
omapdrm drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
panel drm/panel: simple: add support for the Samsung LTL101AL01 panel 2022-07-09 15:56:11 +02:00
panfrost drm-misc-next for 5.20: 2022-06-15 19:12:17 +02:00
pl111 drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
qxl drm/ttm: rename and cleanup ttm_bo_init 2022-07-11 10:53:13 +02:00
r128 drm/r128: Fix undefined behavior due to shift overflowing the constant 2022-05-21 18:02:47 +02:00
radeon Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
rcar-du drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
rockchip drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
savage
scheduler Merge tag 'amd-drm-next-5.20-2022-07-05' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2022-07-12 11:07:32 +10:00
shmobile drm: shmobile: Use backlight helper 2022-06-24 21:45:28 +02:00
sis
solomon drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
sprd drm: Drop drm_blend.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
sti drm: Remove linux/i2c.h from drm_crtc.h 2022-07-05 21:15:23 +03:00
stm drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
sun4i Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
tdfx
tegra drm/tegra: Changes for v5.20-rc1 2022-07-12 16:50:05 +10:00
tests drm: selftest: convert drm_mm selftest to KUnit 2022-07-11 14:00:05 +02:00
tidss drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
tilcdc drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
tiny drm: Implement DRM aperture helpers under video/ 2022-06-27 11:07:55 +02:00
ttm Merge drm/drm-next into drm-misc-next 2022-07-13 10:33:00 +02:00
tve200 drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
udl drm: Drop drm_edid.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
v3d drm/v3d: Add support for bcm2711 2022-06-12 22:10:50 -01:00
vboxvideo drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
vc4 drm/vc4: vec: Switch to drmm_kzalloc 2022-07-13 10:46:12 +02:00
vgem
via
virtio drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
vkms drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
vmwgfx drm/ttm: rename and cleanup ttm_bo_init 2022-07-11 10:53:13 +02:00
xen Linux 5.19-rc6 2022-07-13 10:54:56 +10:00
xlnx drm: xlnx: add <linux/io.h> for readl/writel 2022-07-06 22:54:51 +03:00
drm_agpsupport.c
drm_aperture.c drm/aperture: Run fbdev removal before internal helpers 2022-07-09 11:12:05 -07:00
drm_atomic_helper.c drm/atomic-helper: Add helper drm_atomic_helper_check_crtc_state() 2022-06-27 11:10:43 +02:00
drm_atomic_state_helper.c drm: Drop drm_blend.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_atomic_uapi.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_atomic.c drm: Drop drm_blend.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_auth.c
drm_blend.c drm/doc: Fix comment typo 2022-06-28 07:56:32 +02:00
drm_bridge_connector.c drm: Config orientation property if panel provides it 2022-06-21 08:52:59 -07:00
drm_bridge.c drm/bridge: Avoid uninitialized variable warning 2022-07-08 13:41:28 +02:00
drm_buddy.c
drm_bufs.c
drm_cache.c
drm_client_modeset.c drm: Drop drm_edid.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_client.c drm/client: Use actual bpp when allocating frame buffers 2022-07-09 15:00:52 +02:00
drm_color_mgmt.c drm: fix typo in comment 2022-05-04 14:09:34 +02:00
drm_connector.c drm/connector: Introduce drmm_connector_init 2022-07-13 10:46:06 +02:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_crtc_internal.h drm/edid: abstract debugfs override EDID set/reset 2022-06-30 10:50:59 +03:00
drm_crtc.c drm/crtc: Introduce drmm_crtc_init_with_planes 2022-07-13 10:46:05 +02:00
drm_damage_helper.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_debugfs_crc.c
drm_debugfs.c drm/edid: abstract debugfs override EDID set/reset 2022-06-30 10:50:59 +03:00
drm_displayid.c drm/displayid: convert to drm_edid 2022-05-13 18:55:13 +03:00
drm_dma.c
drm_drv.c
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: take HF-EEODB extension count into account 2022-06-30 10:51:12 +03:00
drm_encoder_slave.c
drm_encoder.c drm/encoder: Introduce drmm_encoder_init 2022-07-13 10:46:05 +02:00
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Add support for DRM_FORMAT_C[124] 2022-07-09 15:07:09 +02:00
drm_file.c
drm_flip_work.c
drm_format_helper.c drm/format-helper: Share implementation among conversion helpers 2022-05-05 08:54:09 +02:00
drm_fourcc.c drm/fourcc: Add DRM_FORMAT_D[1248] 2022-07-09 15:36:07 +02:00
drm_framebuffer.c drm/framebuffer: Use actual bpp for DRM_IOCTL_MODE_GETFB 2022-07-09 15:01:20 +02:00
drm_gem_atomic_helper.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_gem_cma_helper.c drm/cma-helper: Describe what a "contiguous chunk" actually means 2022-06-08 17:36:15 +02:00
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Use actual bpp for size calculations 2022-07-09 15:08:16 +02:00
drm_gem_shmem_helper.c
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/ttm: rename and cleanup ttm_bo_init 2022-07-11 10:53:13 +02:00
drm_gem.c
drm_hashtab.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c GPU: drm: drop unexpected word "the" in the comments 2022-06-22 09:23:08 +02:00
drm_irq.c
drm_kms_helper_common.c drm: Drop drm_edid.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_lease.c
drm_legacy_misc.c
drm_legacy.h
drm_lock.c
drm_managed.c drm: Add DRM-managed mutex_init() 2022-05-05 09:04:10 +02:00
drm_memory.c
drm_mipi_dbi.c drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
drm_mipi_dsi.c drm/mipi-dsi: Detach devices when removing the host 2022-07-13 10:46:05 +02:00
drm_mm.c
drm_mode_config.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_mode_object.c
drm_modes.c drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
drm_modeset_helper.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
drm_modeset_lock.c
drm_nomodeset.c
drm_of.c drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
drm_panel_orientation_quirks.c Linux 5.19-rc6 2022-07-13 10:54:56 +10:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c drm/plane: Move range check for format_count earlier 2022-04-28 16:13:04 +01:00
drm_prime.c drm/prime: drop unexpected word "the" in the comments 2022-06-22 09:22:05 +02:00
drm_print.c
drm_privacy_screen_x86.c
drm_privacy_screen.c
drm_probe_helper.c drm/probe-helper: add drm_connector_helper_get_modes() 2022-06-30 10:51:03 +03:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-kms: Use drm_atomic_helper_check_crtc_state() 2022-06-27 11:10:43 +02:00
drm_syncobj.c drm/syncobj: add missing error return code in drm_syncobj_transfer_to_timeline() 2022-06-13 08:54:16 +02:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c
drm_vm.c LoongArch: Add writecombine support for drm 2022-06-03 20:09:27 +08:00
drm_vma_manager.c
drm_writeback.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
Kconfig drm: selftest: convert drm_mm selftest to KUnit 2022-07-11 14:00:05 +02:00
Makefile drm: selftest: convert drm_mm selftest to KUnit 2022-07-11 14:00:05 +02:00