freebsd-dev/sys/dev/drm
Hans Petter Selasky 07da61a6cc Streamline use of cdevpriv and correct some corner cases.
1) It is not useful to call "devfs_clear_cdevpriv()" from
"d_close" callbacks, hence for example read, write, ioctl and
so on might be sleeping at the time of "d_close" being called
and then then freed private data can still be accessed.
Examples: dtrace, linux_compat, ksyms (all fixed by this patch)

2) In sys/dev/drm* there are some cases in which memory will
be freed twice, if open fails, first by code in the open
routine, secondly by the cdevpriv destructor. Move registration
of the cdevpriv to the end of the drm open routines.

3) devfs_clear_cdevpriv() is not called if the "d_open" callback
registered cdevpriv data and the "d_open" callback function
returned an error. Fix this.

Discussed with:	phk
MFC after:	2 weeks
2012-08-15 16:19:39 +00:00
..
ati_pcigart.c Now that we properly set write-combining on the pages that back the GART, 2010-04-22 18:47:30 +00:00
drm_agpsupport.c Do a sweep of the tree replacing calls to pci_find_extcap() with calls to 2011-03-23 13:10:15 +00:00
drm_atomic.h
drm_auth.c
drm_bufs.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
drm_context.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
drm_dma.c
drm_drawable.c
drm_drv.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
drm_fops.c Streamline use of cdevpriv and correct some corner cases. 2012-08-15 16:19:39 +00:00
drm_hashtab.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_hashtab.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_internal.h
drm_ioctl.c
drm_irq.c fix atomic_set_xxx misuse in drm 2010-12-11 10:18:05 +00:00
drm_linux_list.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_lock.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
drm_memory.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
drm_mm.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_mm.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_pci.c We don't know what these pages are going to be used for, they should be 2009-03-30 18:01:42 +00:00
drm_pciids.h Add support for ATI Radeon HD 4250. 2010-08-03 16:30:56 +00:00
drm_sarea.h
drm_scatter.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
drm_sman.c Address some WITNESS panics that occur when using the via driver. 2010-04-23 14:48:30 +00:00
drm_sman.h Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
drm_sysctl.c Fix display of the drm sysctls. 2011-04-23 23:11:44 +00:00
drm_vm.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
drm.h
drmP.h Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
i915_dma.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
i915_drm.h
i915_drv.c Import simple drm memory manager. 2010-01-31 14:25:29 +00:00
i915_drv.h Do not define bool/true/false if the symbols already exist. 2011-12-12 18:43:24 +00:00
i915_irq.c Some more cleanups for vblank code on Intel. 2009-06-25 18:27:08 +00:00
i915_mem.c
i915_reg.h Add support for Intel Pineview chips, aka IGD 2010-03-13 11:51:18 +00:00
i915_suspend.c Fix what appears to be a typo, and restore the registers correctly. 2009-03-20 17:51:26 +00:00
mach64_dma.c Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
mach64_drm.h
mach64_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mach64_drv.h
mach64_irq.c
mach64_state.c Check pointer for NULL before dereferencing it, not after. 2009-10-21 15:54:45 +00:00
mga_dma.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
mga_drm.h
mga_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mga_drv.h Fix format string Z --> z, since the former is a deprecated and (in FreeBSD) 2011-12-16 12:42:02 +00:00
mga_irq.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
mga_state.c
mga_ucode.h
mga_warp.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r128_cce.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
r128_drm.h
r128_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
r128_drv.h
r128_irq.c
r128_state.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r300_cmdbuf.c check offsets for R300_ZB_ZPASS_ADDR 2009-04-07 22:26:53 +00:00
r300_reg.h Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
r600_blit.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
r600_cp.c Now that we properly set write-combining on the pages that back the GART, 2010-04-22 18:47:30 +00:00
r600_microcode.h
radeon_cp.c re-write scatter gather memory allocation yet again... 2010-04-22 18:44:23 +00:00
radeon_cs.c Make drm(4) build, if not work reliably, on PowerPC. 2010-11-16 03:43:06 +00:00
radeon_drm.h Add GET_PARAM support for Z pipes. 2009-08-23 15:02:58 +00:00
radeon_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
radeon_drv.h radeon_family is an enum, so ordering can be important. 2009-09-28 22:40:29 +00:00
radeon_irq.c R600 doesn't support IRQs yet, so don't try to use them. 2009-09-28 22:37:07 +00:00
radeon_mem.c
radeon_microcode.h
radeon_state.c In sys/dev/drm/radeon_state.c, use the correct printf length modifiers 2011-12-30 02:07:50 +00:00
savage_bci.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
savage_drm.h
savage_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
savage_drv.h
savage_state.c
sis_drm.h
sis_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
sis_drv.h
sis_ds.c
sis_ds.h
sis_mm.c
tdfx_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
tdfx_drv.h
via_3d_reg.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_dma.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
via_dmablit.c Introduce and use a new VM interface for temporarily pinning pages. This 2010-12-25 21:26:56 +00:00
via_dmablit.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drm.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drv.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_drv.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_irq.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_map.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
via_mm.c Rework how drm maps are handled. 2010-04-22 18:21:25 +00:00
via_verifier.c Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_verifier.h Welcome drm support for VIA unichrome chips. 2010-01-31 14:30:39 +00:00
via_video.c fx->lock is used as an index, correct test case. 2010-04-28 10:33:41 +00:00