From c4753723722790715aa799160041041cb37b6992 Mon Sep 17 00:00:00 2001
From: RSDuck <RSDuck@users.noreply.github.com>
Date: Sat, 9 Jan 2021 18:31:12 +0100
Subject: mask off upper bits when incrementing RX addr fixes #931

---
 src/Wifi.cpp | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

(limited to 'src')

diff --git a/src/Wifi.cpp b/src/Wifi.cpp
index 4502f18..e00f72b 100644
--- a/src/Wifi.cpp
+++ b/src/Wifi.cpp
@@ -791,22 +791,15 @@ bool ProcessTX(TXSlot* slot, int num)
 }
 
 
-inline void IncrementRXAddr(u16& addr, u16 inc)
+inline void IncrementRXAddr(u16& addr, u16 inc = 2)
 {
     addr += inc;
+    addr &= 0x1FFE;
     if (addr >= (IOPORT(W_RXBufEnd) & 0x1FFE))
     {
         addr -= (IOPORT(W_RXBufEnd) & 0x1FFE);
         addr += (IOPORT(W_RXBufBegin) & 0x1FFE);
-    }
-}
-
-inline void IncrementRXAddr(u16& addr)
-{
-    addr += 2;
-    if (addr == (IOPORT(W_RXBufEnd) & 0x1FFE))
-    {
-        addr = (IOPORT(W_RXBufBegin) & 0x1FFE);
+        addr &= 0x1FFE;
     }
 }
 
-- 
cgit v1.2.3