net/tcp: define a fallback value for rcv_wnd size
authorMikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Sat, 28 Dec 2024 10:46:36 +0000 (13:46 +0300)
committerTom Rini <trini@konsulko.com>
Sat, 28 Dec 2024 17:59:42 +0000 (11:59 -0600)
Some driver implements it's own network packet pool, so PKTBUFSRX is zero.
This results in zero-size TCP receive window, so data transfer doesn't
work. Avoid it by setting a reasonable fallback value.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
net/tcp.c

index 2600f74..2635727 100644 (file)
--- a/net/tcp.c
+++ b/net/tcp.c
 #define TCP_SEND_RETRY         3
 #define TCP_SEND_TIMEOUT       2000UL
 #define TCP_RX_INACTIVE_TIMEOUT        30000UL
-#define TCP_RCV_WND_SIZE       (PKTBUFSRX * TCP_MSS)
+#if PKTBUFSRX != 0
+  #define TCP_RCV_WND_SIZE     (PKTBUFSRX * TCP_MSS)
+#else
+  #define TCP_RCV_WND_SIZE     (4 * TCP_MSS)
+#endif
 
 #define TCP_PACKET_OK          0
 #define TCP_PACKET_DROP                1