From adf9150bbfd299c136feaffce7162246588119e3 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 10 Aug 2017 14:02:49 +0200 Subject: forgot to set transmitting after writting (rtl8139) --- src/drivers/net/rtl8139.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; } -- cgit v1.2.3-54-g00ecf