net: dm9000: Correctly handle empty FIFO
authorMarek Vasut <marex@denx.de>
Mon, 25 Apr 2022 18:28:05 +0000 (20:28 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 8 Aug 2022 14:50:20 +0000 (10:50 -0400)
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@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
drivers/net/dm9000x.c

index 78ce536..07733df 100644 (file)
@@ -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)