mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 04:43:53 +00:00
08e7819153
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. Create a new device_busy_locked and device_unbusy_locked that are the current implemntations of device_busy and device_unbusy. Make device_busy and unbusy acquire Giant before calling the _locked versrions. Since we never sleep in the busy/unbusy path, Giant's single threaded semantics suffice to keep this safe. 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 |