⬢ DragonFlyBSD Kernel Audit
DF-4532 / static_proof.log
← back to finding ↓ download raw
== all device_busy/device_unbusy sites in sys/dev/drm ==
sys/dev/drm/drm_file.c:351:	device_busy(dev->dev->bsddev);
sys/dev/drm/drm_drv.c:1230:	device_unbusy(dev->dev->bsddev);

== devfs_set_cdevpriv callers in sys/dev/drm (would register the dtor) ==
(none: drm_cdevpriv_dtor is dead code)

== device_unbusy inside drm_file.c close/release paths? ==
(none)

== detach refuses while DS_BUSY (why this wedges the driver) ==
device_detach(device_t dev)
{
	int error;

	PDEBUG(("%s", DEVICENAME(dev)));
	if (dev->state == DS_BUSY)
		return(EBUSY);
	if (dev->state != DS_ATTACHED)

PROVEN: every successful drm open() leaks one busy count; no live unbusy.