diff --git a/src/sys/device.c b/src/sys/device.c index 22f9b8cd..f90a91fa 100644 --- a/src/sys/device.c +++ b/src/sys/device.c @@ -224,18 +224,20 @@ VOID FspDeviceRelease(PDEVICE_OBJECT DeviceObject) { // !PAGED_CODE(); - BOOLEAN Result; + BOOLEAN Delete = FALSE; FSP_DEVICE_EXTENSION *DeviceExtension; KIRQL Irql; DeviceExtension = FspDeviceExtension(DeviceObject); KeAcquireSpinLock(&DeviceExtension->SpinLock, &Irql); if (0 != DeviceExtension->RefCount) + { DeviceExtension->RefCount--; - Result = 0 != DeviceExtension->RefCount; + Delete = 0 == DeviceExtension->RefCount; + } KeReleaseSpinLock(&DeviceExtension->SpinLock, Irql); - if (!Result) + if (Delete) FspDeviceDelete(DeviceObject); }