Loading...
--- xnu/xnu-123.5/iokit/Kernel/IOPMchangeNoteList.cpp
+++ xnu/xnu-792.6.76/iokit/Kernel/IOPMchangeNoteList.cpp
@@ -21,6 +21,7 @@
*/
#include <IOKit/pwr_mgt/IOPM.h>
#include <IOKit/pwr_mgt/IOPMchangeNoteList.h>
+#include <IOKit/pwr_mgt/IOPowerConnection.h>
#define super OSObject
OSDefineMetaClassAndStructors(IOPMchangeNoteList,OSObject)
@@ -104,6 +105,13 @@
IOReturn IOPMchangeNoteList::releaseHeadChangeNote ( void )
{
+ IOPowerConnection *tmp;
+
+ if((tmp = changeNote[firstInList].parent)) {
+ changeNote[firstInList].parent = 0;
+ tmp->release();
+ }
+
changeNote[firstInList].flags = IOPMNotInUse;
firstInList = increment(firstInList);
return IOPMNoErr;
@@ -121,6 +129,13 @@
IOReturn IOPMchangeNoteList::releaseTailChangeNote ( void )
{
+ IOPowerConnection *tmp;
+
+ if((tmp = changeNote[firstInList].parent)) {
+ changeNote[firstInList].parent = 0;
+ tmp->release();
+ }
+
firstUnused = decrement(firstUnused);
changeNote[firstUnused].flags = IOPMNotInUse;
return IOPMNoErr;