Loading...
iokit/Kernel/IOInterruptController.cpp xnu-1228.5.20 xnu-792.21.3
--- xnu/xnu-1228.5.20/iokit/Kernel/IOInterruptController.cpp
+++ xnu/xnu-792.21.3/iokit/Kernel/IOInterruptController.cpp
@@ -87,15 +87,6 @@
   // Check if the interrupt source can/should be shared.
   canBeShared = vectorCanBeShared(vectorNumber, vector);
   IODTGetInterruptOptions(nub, source, &options);
-#if defined(__i386__) || defined(__x86_64__)
-  int   interruptType;
-  if (OSDynamicCast(IOPlatformDevice, getProvider()) &&
-      (getInterruptType(nub, source, &interruptType) == kIOReturnSuccess) &&
-      (kIOInterruptTypeLevel & interruptType))
-  {
-    options |= kIODTInterruptShared;
-  }
-#endif
   shouldBeShared = canBeShared && (options & kIODTInterruptShared);
   wasAlreadyRegisterd = vector->interruptRegistered;
   
@@ -442,8 +433,6 @@
   _numInterruptSources = 1;
   
   // Set up the IOInterruptSource to point at this.
-  parentController->retain();
-  parentSource->retain();
   _interruptSources[0].interruptController = parentController;
   _interruptSources[0].vectorData = parentSource;
   
@@ -683,8 +672,7 @@
 
 IOInterruptAction IOSharedInterruptController::getInterruptHandlerAddress(void)
 {
-    return OSMemberFunctionCast(IOInterruptAction,
-			this, &IOSharedInterruptController::handleInterrupt);
+    return (IOInterruptAction)&IOSharedInterruptController::handleInterrupt;
 }
 
 IOReturn IOSharedInterruptController::handleInterrupt(void * /*refCon*/,