summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/net/rtl8139.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c
index c500842..8fc7ff4 100644
--- a/src/drivers/net/rtl8139.c
+++ b/src/drivers/net/rtl8139.c
@@ -370,6 +370,10 @@ void rtl8139_write( void *obj, network_buffer_t buf )
{
rtl8139_t *rtl8139 = (rtl8139_t *)obj;
+ // TODO: actually not an overrun, but correct handling all four
+ // send buffers is quite complicated as we have to check the status
+ // of the transmit buffers all the time, so for now we assume we
+ // send one packet in a row only
if( rtl8139->transmitting ) {
puts( "rtl8139: currently transmitting, buffer overrun" );
return;
@@ -390,4 +394,6 @@ void rtl8139_write( void *obj, network_buffer_t buf )
rtl8139->transmit_buffer_idx += 1;
rtl8139->transmit_buffer_idx %= NOF_TRANSMIT_BUFFERS;
+
+ rtl8139->transmitting = true;
}