Assign packet pointer only in case the MAC reports anything in the FIFO.
In case the MAC indicates empty FIFO, return 0 to pass that information
to the network stack.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Joe Hershberger <joe.hershber...@ni.com>
Cc: Ramon Fried <rfried....@gmail.com>
---
 drivers/net/dm9000x.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c
index 78ce536d4a3..07733df533e 100644
--- a/drivers/net/dm9000x.c
+++ b/drivers/net/dm9000x.c
@@ -666,10 +666,10 @@ static int dm9000_recv(struct udevice *dev, int flags, 
uchar **packetp)
        int ret;
 
        ret = dm9000_recv_common(db, data);
-       if (ret)
+       if (ret > 0)
                *packetp = (void *)data;
 
-       return ret ? ret : -EAGAIN;
+       return ret >= 0 ? ret : -EAGAIN;
 }
 
 static int dm9000_write_hwaddr(struct udevice *dev)
-- 
2.35.1

Reply via email to