diff --git a/drivers/ethos/ethos.c b/drivers/ethos/ethos.c index cecec42545..a049ac4b7a 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; + } } }