linux/drivers/gpu/drm
Thomas Zimmermann 47d35c1c40 drm: Set vm_ops to GEM object's values during mmap
The GEM mmap code relies on the GEM object's mmap callback to set the
VMA's vm_ops field. This is easily forgotten and already led to a memory
leak in the CMA helpers. Instead set the vm_ops field in the DRM core
code to the GEM object's value. Drivers with different needs can override
this in their mmap callback.

v2:
	* support (vm_ops == NULL) if mmap is given; required by VRAM
	  helpers

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: f5ca8eb6f9 ("drm/cma-helper: Implement mmap as GEM CMA object functions")
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reported-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Tested-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Eric Anholt <eric@anholt.net>
Cc: dri-devel@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20210115093038.10345-1-tzimmermann@suse.de
2021-01-18 10:37:26 +01:00
..
amd drm/amdgpu: Remove unused variable 2021-01-15 13:00:57 +01:00
arc drm: Constify drm_driver in drivers that don't modify it 2021-01-05 07:20:36 +02:00
arm drm-misc-next for v5.12: 2021-01-07 10:46:32 +01:00
armada drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
aspeed
ast drm/ast: Remove references to struct drm_device.pdev 2021-01-06 15:38:30 +01:00
atmel-hlcdc drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
bochs drm/bochs: Remove references to struct drm_device.pdev 2021-01-06 15:42:55 +01:00
bridge - Add default modes for connectors in unknown state 2021-01-07 13:02:57 +01:00
etnaviv Merge drm/drm-next into drm-misc-next 2020-12-15 11:05:43 +01:00
exynos drm for 5.11-rc1 2020-12-14 11:07:56 -08:00
fsl-dcu
gma500 drm/gma500: Remove references to struct drm_device.pdev 2021-01-06 15:43:13 +01:00
hisilicon drm/hisilicon/hibmc: Remove hibmc_ttm.c 2021-01-15 10:06:00 +01:00
i2c
i810
i915 - Display hotplug fix for gen2/gen3 (Chris) 2021-01-07 12:20:29 +01:00
imx drm/imx: ipuv3-crtc: use drm managed resources 2021-01-04 12:59:34 +01:00
ingenic drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
kmb - Add default modes for connectors in unknown state 2021-01-07 13:02:57 +01:00
lib
lima UAPI Changes: 2020-12-18 12:38:28 -08:00
mcde drm-misc-next for 5.11: 2020-12-15 10:21:48 +01:00
mediatek drm-misc-next for v5.12: 2021-01-07 10:46:32 +01:00
meson drm/meson: dw-hdmi: Enable the iahb clock early enough 2020-11-20 16:41:10 +01:00
mga
mgag200 drm/mgag200: Remove references to struct drm_device.pdev 2021-01-06 15:43:13 +01:00
msm drm-misc-next for v5.12: 2021-01-07 10:46:32 +01:00
mxsfb Short summary of fixes pull (less than what git shortlog provides): 2020-12-15 17:25:55 +01:00
nouveau drm/nouveau: Remove references to struct drm_device.pdev 2021-01-13 09:04:04 +01:00
omapdrm drm/omap: Delete useless kfree code 2020-12-15 17:19:54 +02:00
panel drm/panel: s6e63m0: Support max-brightness 2020-12-30 11:26:08 +01:00
panfrost drm/panfrost: Use delayed timer as default in devfreq profile 2021-01-13 15:38:27 +00:00
pl111 drm/cma-helper: Implement mmap as GEM CMA object functions 2020-11-30 13:38:27 +01:00
qxl Merge drm/drm-next into drm-misc-next 2021-01-07 14:11:28 +01:00
r128
radeon drm/radeon: Store PCI controller in struct radeon_device.hose 2021-01-13 14:22:37 +01:00
rcar-du - Add default modes for connectors in unknown state 2021-01-07 13:02:57 +01:00
rockchip drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
savage
scheduler Merge drm/drm-next into drm-misc-next 2020-12-15 11:05:43 +01:00
selftests drm/selftests/test-drm_dp_mst_helper: Move 'sideband_msg_req_encode_decode' onto the heap 2020-11-17 20:08:29 +01:00
shmobile
sis
sti drm: sti: Remove unnecessary drm_plane_cleanup() wrapper 2021-01-05 07:20:21 +02:00
stm drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
sun4i drm/sun4i: tcon: fix inverted DCLK polarity 2021-01-14 12:37:28 +01:00
tdfx drm: Constify drm_driver in drivers that don't modify it 2021-01-05 07:20:36 +02:00
tegra drm for 5.11-rc1 2020-12-14 11:07:56 -08:00
tidss
tilcdc
tiny drm/cirrus: Remove references to struct drm_device.pdev 2021-01-06 15:43:10 +01:00
ttm Merge drm/drm-next into drm-misc-next 2021-01-07 14:11:28 +01:00
tve200 drm/tve200: remove unused including <linux/version.h> 2020-12-30 11:25:05 +01:00
udl drm/shmem-helper: Removed drm_gem_shmem_create_object_cached() 2020-11-24 09:10:33 +01:00
v3d drm/v3d: Don't clear MMU control bits on exception 2021-01-06 18:38:57 +01:00
vboxvideo drm/vboxvideo: Remove references to struct drm_device.pdev 2021-01-06 15:44:04 +01:00
vc4 drm/vc4: Initialize vc4_drm_driver with CMA helper defaults 2021-01-15 10:39:05 +01:00
vgem drm/prime: split array import functions v4 2020-11-30 15:00:45 +01:00
via via/via_irq: use __func__ to replace string function name 2020-11-27 16:14:02 +01:00
virtio drm/virtio: fix prime export for vram objects 2021-01-11 08:49:48 +01:00
vkms drm/vkms: Fix missing kmalloc allocation failure check 2021-01-15 17:45:07 -03:00
vmwgfx drm/vmwgfx: Fix display register usage for some older configs 2021-01-14 12:16:47 -05:00
xen drm/prime: split array import functions v4 2020-11-30 15:00:45 +01:00
xlnx
zte drm: zte: Remove unnecessary drm_plane_cleanup() wrapper 2021-01-05 07:20:24 +02:00
drm_agpsupport.c drm: Inline AGP wrappers into their only callers 2021-01-13 14:21:53 +01:00
drm_atomic.c Merge branch 'akpm' (patches from Andrew) 2020-12-15 12:53:37 -08:00
drm_atomic_helper.c drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
drm_atomic_state_helper.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_atomic_uapi.c drm: fix oops in drm_atomic_set_crtc_for_connector 2020-11-16 09:56:55 +01:00
drm_auth.c
drm_blend.c drm/doc: introduce new section for standard plane properties 2020-12-17 16:56:40 +01:00
drm_bridge.c
drm_bridge_connector.c
drm_bufs.c drm: Fix fall-through warnings for Clang 2020-11-22 22:58:54 +01:00
drm_cache.c drm: Include <linux/mem_encrypt.h> in drm_cache.c 2021-01-14 09:42:31 +01:00
drm_client.c drm/client: Depend on GEM object kmap ref-counting 2020-11-24 09:27:54 +01:00
drm_client_modeset.c
drm_color_mgmt.c drm: add legacy support for using degamma for gamma 2020-12-15 15:46:03 +02:00
drm_connector.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_context.c
drm_crtc.c drm/imx: fixes and drm managed resources 2021-01-07 11:24:50 +01:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c Merge tag 'topic/dp-hdmi-2.1-pcon-2020-12-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-01-07 11:02:25 +01:00
drm_dp_mst_topology.c drm: distinguish return value of drm_dp_check_and_send_link_address 2021-01-12 15:44:07 +01:00
drm_dp_mst_topology_internal.h
drm_drv.c - Add default modes for connectors in unknown state 2021-01-07 13:02:57 +01:00
drm_dsc.c drm/dsc: add helper for calculating rc buffer size from DPCD 2020-12-10 10:49:47 +02:00
drm_dumb_buffers.c drm: Don't export the drm_gem_dumb_destroy() function 2021-01-05 07:20:25 +02:00
drm_edid.c Merge tag 'topic/dp-hdmi-2.1-pcon-2020-12-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-01-07 11:02:25 +01:00
drm_edid_load.c
drm_encoder.c drm: add drmm_encoder_alloc() 2021-01-04 12:59:33 +01:00
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Add a FIXME that generic_setup is very confusing 2020-12-22 12:17:37 +01:00
drm_file.c drm: Move struct drm_device.hose to legacy section 2021-01-13 14:22:37 +01:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_gem.c drm: Set vm_ops to GEM object's values during mmap 2021-01-18 10:37:26 +01:00
drm_gem_cma_helper.c drm/cma-helper: Implement mmap as GEM CMA object functions 2020-11-30 13:38:27 +01:00
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c drm/shmem-helper: Removed drm_gem_shmem_create_object_cached() 2020-11-24 09:10:33 +01:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: Fix use of top-down placement 2020-11-20 05:20:48 +10:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm: Don't export the drm_gem_dumb_destroy() function 2021-01-05 07:20:25 +02:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c drm/irq: Add the new api to install irq 2020-12-03 03:57:15 -05:00
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h drm: Merge CONFIG_DRM_VM into CONFIG_DRM_LEGACY 2021-01-13 14:22:37 +01:00
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c drm: Implement drm_need_swiotlb() in drm_cache.c 2021-01-13 14:22:29 +01:00
drm_mipi_dbi.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm-misc-next for v5.12: 2021-01-07 13:40:20 +01:00
drm_mode_object.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_modes.c drm/modes: Switch to 64bit maths to avoid integer overflow 2021-01-14 19:37:53 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c
drm_pci.c drm: Use a const drm_driver for legacy PCI devices 2021-01-05 07:20:35 +02:00
drm_plane.c drm-misc-next for v5.12: 2021-01-07 13:40:20 +01:00
drm_plane_helper.c
drm_prime.c drm: Set vm_ops to GEM object's values during mmap 2021-01-18 10:37:26 +01:00
drm_print.c
drm_probe_helper.c drm: Add default modes for connectors in unknown state 2021-01-05 07:19:50 +02:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple_kms_helper: add drmm_simple_encoder_alloc() 2021-01-04 12:59:33 +01:00
drm_syncobj.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Fix typo in docs 2021-01-14 15:47:45 +01:00
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig drm: Merge CONFIG_DRM_VM into CONFIG_DRM_LEGACY 2021-01-13 14:22:37 +01:00
Makefile drm: Merge CONFIG_DRM_VM into CONFIG_DRM_LEGACY 2021-01-13 14:22:37 +01:00