mirror of
https://github.com/opnsense/src.git
synced 2026-04-03 00:15:16 -04:00
The vast majority of the busy/unbusy users in the tree don't acquire Giant before calling device_busy/unbusy. However, if multiple threads are opening a file, say, that causes the device to busy/unbusy, then we can race to the root marking things busy. Move to using a reference count to keep track of how many times a device_t has been made busy. Use that count to make the same decisions that we'd make with the old device state. Note: gpiopps.c uses D_TRACKCLOSE. Others do as well. However, there's a known race with closes that will be corrected for all the drivers that do this in a future commit. Sponsored by: Netflix Reviewed by: hselasky, jhb Differential Revision: https://reviews.freebsd.org/D26284 |
||
|---|---|---|
| .. | ||
| ttm | ||
| drm.h | ||
| drm_agpsupport.c | ||
| drm_atomic.h | ||
| drm_auth.c | ||
| drm_buffer.c | ||
| drm_buffer.h | ||
| drm_bufs.c | ||
| drm_context.c | ||
| drm_core.h | ||
| drm_crtc.c | ||
| drm_crtc.h | ||
| drm_crtc_helper.c | ||
| drm_crtc_helper.h | ||
| drm_dma.c | ||
| drm_dp_helper.c | ||
| drm_dp_helper.h | ||
| drm_dp_iic_helper.c | ||
| drm_drv.c | ||
| drm_edid.c | ||
| drm_edid.h | ||
| drm_edid_modes.h | ||
| drm_fb_helper.c | ||
| drm_fb_helper.h | ||
| drm_fixed.h | ||
| drm_fops.c | ||
| drm_fourcc.h | ||
| drm_gem.c | ||
| drm_gem_names.c | ||
| drm_gem_names.h | ||
| drm_global.c | ||
| drm_global.h | ||
| drm_hashtab.c | ||
| drm_hashtab.h | ||
| drm_ioc32.c | ||
| drm_ioctl.c | ||
| drm_irq.c | ||
| drm_linux_list.h | ||
| drm_linux_list_sort.c | ||
| drm_lock.c | ||
| drm_mem_util.h | ||
| drm_memory.c | ||
| drm_mm.c | ||
| drm_mm.h | ||
| drm_mode.h | ||
| drm_modes.c | ||
| drm_os_freebsd.c | ||
| drm_os_freebsd.h | ||
| drm_pci.c | ||
| drm_pciids.h | ||
| drm_platform.c | ||
| drm_sarea.h | ||
| drm_scatter.c | ||
| drm_stub.c | ||
| drm_sysctl.c | ||
| drm_vm.c | ||
| drmP.h | ||