diff --git a/drivers/ethos/ethos.c b/drivers/ethos/ethos.c index cecec42545f871c5388fa077fc35f468e4cd8c96..a049ac4b7ae3d18bd373d69e182e5e69d501abf8 100644 --- a/drivers/ethos/ethos.c +++ b/drivers/ethos/ethos.c @@ -314,7 +314,14 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void* info) return (int)len; } else { - return dev->last_framesize; + if (len) { + int dropsize = dev->last_framesize; + dev->last_framesize = 0; + return tsrb_drop(&dev->inbuf, dropsize); + } + else { + return dev->last_framesize; + } } }