Loading...
iokit/Kernel/IOStartIOKit.cpp xnu-8020.140.41 xnu-8792.41.9
--- xnu/xnu-8020.140.41/iokit/Kernel/IOStartIOKit.cpp
+++ xnu/xnu-8792.41.9/iokit/Kernel/IOStartIOKit.cpp
@@ -133,15 +133,6 @@
 void
 InitIOKit(void *dtTop)
 {
-	// Enable IOWaitQuiet panics on arm64 macOS except on KASAN.
-	// existing 3rd party KEXTs may hold the registry busy on x86 RELEASE kernels.
-	// Enabling this on other platforms is tracked in rdar://66364108
-#if XNU_TARGET_OS_OSX && defined(__arm64__) && !KASAN
-	if (gIOKitDebug == DEBUG_INIT_VALUE) {
-		gIOKitDebug |= kIOWaitQuietPanics;
-	}
-#endif
-
 	// Compat for boot-args
 	gIOKitTrace |= (gIOKitDebug & kIOTraceCompatBootArgs);
 
@@ -197,12 +188,14 @@
 	}
 
 #if !NO_KEXTD
-	/* Add a busy count to keep the registry busy until kextd has
-	 * completely finished launching. This is decremented when kextd
-	 * messages the kernel after the in-kernel linker has been
-	 * removed and personalities have been sent.
-	 */
-	IOService::getServiceRoot()->adjustBusy(1);
+	if (OSKext::iokitDaemonAvailable()) {
+		/* Add a busy count to keep the registry busy until the IOKit daemon has
+		 * completely finished launching. This is decremented when the IOKit daemon
+		 * messages the kernel after the in-kernel linker has been
+		 * removed and personalities have been sent.
+		 */
+		IOService::getServiceRoot()->adjustBusy(1);
+	}
 #endif
 }