rem: result = ctx->m_DMA[ iter->m_ChannelBit ];
add: conflict = ctx->m_DMA[ iter->m_ChannelBit ];
context: LockResource( struct ResourceIterator* iter,              struct ResourceContext*  ctx ){  struct ResourceIterator* result = NULL;  switch( iter->m_Resource->m_Type )  {    case ISAPNP_NT_IRQ_RESOURCE:    {KPrintF( "L IRQ %ld", iter->m_IRQBit );      if( ctx->m_IRQ[ iter->m_IRQBit ] == NULL )      {        ctx->m_IRQ[ iter->m_IRQBit ] = iter;      }      else      {        result = ctx->m_IRQ[ iter->m_IRQBit ];      }            break;    }    case ISAPNP_NT_DMA_RESOURCE:    {KPrintF( "L DMA %ld", iter->m_ChannelBit );      if( ctx->m_DMA[ iter->m_ChannelBit ] == NULL )      {        ctx->m_DMA[ iter->m_ChannelBit ] = iter;      }      else      {        result = ctx->m_DMA[ iter->m_ChannelBit ];      }      break;    }    case ISAPNP_NT_IO_RESOURCE:    {      struct ResourceIteratorRef* io;      struct ResourceIteratorRef* new_io;      struct Node*                position = NULL;      UWORD base   = iter->m_Base;      UWORD length = iter->m_Length;KPrintF( "L IO %lx-%lx", base, base + length );      for( io = (struct ResourceIteratorRef*) ctx->m_IO.mlh_Head;           io->m_MinNode.mln_Succ != NULL;           io = (struct ResourceIteratorRef*) io->m_MinNode.mln_Succ )      {        UWORD io_base   = io->m_Iterator->m_Base;        UWORD io_length = io->m_Iterator->m_Length;        if( ( base <= io_base && ( base + length ) > io_base )    ||            ( base >= io_base && base < ( io_base + io_length ) ) )        {          // Collision!          result = io->m_Iterator;          break;        }        if( base + length <= io_base )        {          // No more collisions possible; insert before this one              position = (struct Node*) io->m_MinNode.mln_Pred;          break;        }      }      if( result == NULL )      {        // Insert the node            new_io = AllocVec( sizeof( *new_io ), MEMF_PUBLIC );        if( new_io == NULL )        {          result = (struct ResourceIterator*) -1;        }        else        {          new_io->m_Iterator = iter;          if( position == NULL )          {            AddTail( (struct List*) &ctx->m_IO, (struct Node*) new_io );          }          else          {            Insert( (struct List*) &ctx->m_IO, (struct Node*) new_io, position );          }        }      }      break;    }    case ISAPNP_NT_MEMORY_RESOURCE:    default:      break;  }  iter->m_HasLock = ( result == NULL );  if( result == NULL ) KPrintF( " OK\n" ); else KPrintF( " failed\n" );  return result;}