DragonFlyBSD Kernel Audit
DF-1749 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/amdgpu/amdgpu_acpi.c b/sys/dev/drm/amd/amdgpu/amdgpu_acpi.c
--- a/sys/dev/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/sys/dev/drm/amd/amdgpu/amdgpu_acpi.c
@@ -823,6 +823,13 @@
  */
 void amdgpu_acpi_fini(struct amdgpu_device *adev)
 {
-	if (adev->atif)
+	if (adev->acpi.handle)
+		AcpiRemoveNotifyHandler(adev->acpi.handle, ACPI_DEVICE_NOTIFY,
+					adev->acpi.notifier_call);
+	adev->acpi.handle = NULL;
+	adev->acpi.notifier_call = NULL;
+	if (adev->atif) {
 		AcpiOsFree(adev->atif);
+		adev->atif = NULL;
+	}
 }