ENTER("pNode XOffset XLength pBuffer", Node, Offset, Length, Buffer);
retry:
- Semaphore_Wait( &card->ReadSemaphore, 1 );
+ if( Semaphore_Wait( &card->ReadSemaphore, 1 ) != 1 )
+ {
+ LEAVE_RET('i', 0);
+ }
Mutex_Acquire( &card->ReadMutex );
LOG("packet_count = %i, read_ofs = 0x%x", packet_count, read_ofs);
- Semaphore_Signal( &card->ReadSemaphore, packet_count );
if( packet_count )
+ {
+ if( Semaphore_Signal( &card->ReadSemaphore, packet_count ) != packet_count ) {
+ // Oops?
+ }
VFS_MarkAvaliable( &card->Node, 1 );
+ }
outw(card->IOBase + ISR, FLAG_ISR_ROK);
}