mirror of
https://github.com/opnsense/src.git
synced 2026-02-20 00:11:07 -05: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 |
||
|---|---|---|
| .. | ||
| dwgpio | ||
| bytgpio.c | ||
| chvgpio.c | ||
| chvgpio_reg.h | ||
| gpio_if.m | ||
| gpiobacklight.c | ||
| gpiobus.c | ||
| gpiobus_if.m | ||
| gpiobusvar.h | ||
| gpioc.c | ||
| gpioiic.c | ||
| gpiokeys.c | ||
| gpiokeys.h | ||
| gpiokeys_codes.c | ||
| gpioled.c | ||
| gpioled_fdt.c | ||
| gpiomdio.c | ||
| gpiopower.c | ||
| gpiopps.c | ||
| gpioregulator.c | ||
| gpiospi.c | ||
| gpioths.c | ||
| ofw_gpiobus.c | ||
| pl061.c | ||
| pl061.h | ||
| pl061_acpi.c | ||
| pl061_fdt.c | ||
| qoriq_gpio.c | ||
| qoriq_gpio.h | ||