=================================================================== RCS file: /MkLinux/floppy-darwin/floppy.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- floppy-darwin/floppy.cpp 2002/03/21 22:33:02 1.31 +++ floppy-darwin/floppy.cpp 2002/03/23 06:17:12 1.32 @@ -212,19 +212,19 @@ return false; } - DMAinterruptSource = IOInterruptEventSource::interruptEventSource( + DMAInterruptSource = IOInterruptEventSource::interruptEventSource( (OSObject*)this, (IOInterruptEventAction)&org_mklinux_iokit_swim3_driver::handleDMAInterrupt, (IOService*)provider, (int)1 ); - if ( DMAinterruptSource == NULL ) + if ( DMAInterruptSource == NULL ) { IOLog( "org_mklinux_iokit_swim3_driver::start: Couldn't allocate Interrupt event source\n" ); return false; } - if ( myWorkLoop->addEventSource( DMAinterruptSource ) != kIOReturnSuccess ) + if ( myWorkLoop->addEventSource( DMAInterruptSource ) != kIOReturnSuccess ) { IOLog( "org_mklinux_iokit_swim3_driver::start - Couldn't add Interrupt event source\n" ); return false; @@ -303,7 +303,13 @@ /* @@@@ disable the interrupt and unregister! @@@ */ if ( getWorkLoop() ) - getWorkLoop()->enableAllInterrupts(); + getWorkLoop()->disableAllInterrupts(); + + if(interruptSource) + interruptSource->release(); + + if(DMAInterruptSource) + DMAInterruptSource->release(); if ( workLoop ) { workLoop->release(); workLoop = 0;