android_kernel_motorola_sm6375/include/drm
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Vetter 2225cfe46b drm/gem: Use kref_get_unless_zero for the weak mmap references
Compared to wrapping the final kref_put with dev->struct_mutex this
allows us to only acquire the offset manager look both in the final
cleanup and in the lookup. Which has the upside that no locks leak out
of the core abstractions. But it means that we need to hold a
temporary reference to the object while checking mmap constraints, to
make sure the object doesn't disappear. Extended the critical region
would have worked too, but would result in more leaky locking.

Also, this is the final bit which required dev->struct_mutex in gem
core, now modern drivers can be completely struct_mutex free!

This needs a new drm_vma_offset_exact_lookup_locked and makes both
drm_vma_offset_exact_lookup and drm_vma_offset_lookup unused.

v2: Don't leak object references in failure paths (David).

v3: Add a comment from Chris explaining how the ordering works, with
the slight adjustment that I dropped any mention of struct_mutex since
with this patch it's now immaterial ot core gem.

Cc: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://mid.gmane.org/1444901623-18918-1-git-send-email-daniel.vetter@ffwll.ch
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-10-19 11:00:44 +02:00
..
bridge Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next 2015-08-27 13:01:57 +10:00
i2c
ttm drm/ttm: device address space != CPU address space 2015-03-05 09:04:39 +10:00
ati_pcigart.h drm: Move legacy buffer structures to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
drm_agpsupport.h drm: Remove dummy agp ioctl wrappers 2015-09-30 10:49:22 +02:00
drm_atomic.h drm/atomic: add connectors_changed to separate it from mode_changed, v2 2015-07-27 10:06:38 +02:00
drm_atomic_helper.h drm/fb-helper: atomic restore_fbdev_mode().. 2015-09-16 11:39:26 -07:00
drm_cache.h
drm_core.h
drm_crtc.h drm: Add DRM_ROTATE_MASK and DRM_REFLECT_MASK 2015-10-05 15:32:42 +02:00
drm_crtc_helper.h Linux 4.2-rc7 2015-08-17 14:13:53 +10:00
drm_displayid.h drm/displayid: add displayid defines and edid extension (v2) 2014-12-09 09:56:46 +10:00
drm_dp_helper.h drm/dp: s/I2C_STATUS/I2C_WRITE_STATUS_UPDATE/ 2015-09-08 20:12:38 +02:00
drm_dp_mst_helper.h drm/dp/mst: close deadlock in connector destruction. 2015-06-25 11:57:23 +10:00
drm_edid.h drm: Make drm_av_sync_delay() 'mode' argument const 2015-09-09 14:53:54 +02:00
drm_encoder_slave.h
drm_fb_cma_helper.h
drm_fb_helper.h drm/fb-helper: atomic restore_fbdev_mode().. 2015-09-16 11:39:26 -07:00
drm_fixed.h
drm_flip_work.h drm: flip-work: change drm_flip_work_init prototype 2014-11-15 09:29:14 +10:00
drm_gem.h drm/gem: Check locking in drm_gem_object_unreference 2015-10-19 11:00:35 +02:00
drm_gem_cma_helper.h drm/cma: Introduce drm_gem_cma_dumb_create_internal() 2014-11-13 13:27:17 +01:00
drm_global.h
drm_hashtab.h
drm_legacy.h drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
drm_mem_util.h drm: use kvfree() in drm_free_large() 2015-06-30 19:44:59 -07:00
drm_mipi_dsi.h drm/dsi: Do not require .owner field to be set 2014-11-13 13:56:17 +01:00
drm_mm.h drm/mm: Support 4 GiB and larger ranges 2015-03-05 09:01:37 +10:00
drm_modes.h drm/mode: Unstatic kernel-userspace mode conversion 2015-05-22 16:18:21 +02:00
drm_modeset_lock.h drm/doc: Fixing xml documentation warning 2015-09-08 13:45:48 +02:00
drm_of.h
drm_os_linux.h
drm_panel.h drm/panel: Add display timing support 2015-04-02 19:04:12 +02:00
drm_pciids.h drm/radeon: add new OLAND pci id 2015-08-12 12:24:05 -04:00
drm_plane_helper.h drm/atomic: Make prepare_fb/cleanup_fb only take state, v3. 2015-09-08 13:45:54 +02:00
drm_rect.h
drm_sysfs.h
drm_vma_manager.h drm/gem: Use kref_get_unless_zero for the weak mmap references 2015-10-19 11:00:44 +02:00
drmP.h drm: Add DRM_DEBUG_VBL() 2015-10-16 15:50:55 +02:00
exynos_drm.h
gma_drm.h
i915_component.h drm/i915: Drop port_mst_index parameter from pin/eld callback 2015-09-03 12:09:03 +02:00
i915_drm.h
i915_pciids.h drm/i915/bxt: Update the Broxton PCI ids 2015-05-20 11:26:06 +02:00
intel-gtt.h drm/i915/gtt: Allow >= 4GB sizes for vm. 2015-06-26 10:41:13 +02:00