Page MenuHomeFreeBSD

D49628.diff
No OneTemporary

D49628.diff

diff --git a/sys/dev/rtwn/rtl8812a/r12a_rx.c b/sys/dev/rtwn/rtl8812a/r12a_rx.c
--- a/sys/dev/rtwn/rtl8812a/r12a_rx.c
+++ b/sys/dev/rtwn/rtl8812a/r12a_rx.c
@@ -190,8 +190,16 @@
(rxdw1 & R12A_RXDW1_IPV6) ? "IPv6" : "IP",
(rxdw1 & R12A_RXDW1_CKSUM_ERR) ? "invalid" : "valid");
+ /*
+ * There seems to be a problem with UDP checksum processing
+ * with the checksum value = 0 (ie, no checksum.)
+ * So, don't treat it as a permament failure; just let
+ * the IP stack take a crack at validating frames.
+ *
+ * See kern/285837 for more details.
+ */
if (rxdw1 & R12A_RXDW1_CKSUM_ERR)
- return (-1);
+ return (0);
if ((rxdw1 & R12A_RXDW1_IPV6) ?
(rs->rs_flags & R12A_RXCKSUM6_EN) :

File Metadata

Mime Type
text/plain
Expires
Sun, Nov 23, 2:00 PM (12 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26016348
Default Alt Text
D49628.diff (728 B)

Event Timeline