[PATCH] net: dm9000: Correctly handle empty FIFO

Marek Vasut marex at denx.de
Mon Apr 25 20:28:05 CEST 2022


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 <marex at denx.de>
Cc: Joe Hershberger <joe.hershberger at ni.com>
Cc: Ramon Fried <rfried.dev at 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



More information about the U-Boot mailing list