DragonFly commits List (threaded) for 2007-08
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: cvs commit: src/sys/dev/netif/nfe if_nfe.c
:Matt, I think this one should fix your NFS problem, can you test this change?
:
:Best Regards,
:sephe
Hmm. I would have thought it would have, but it doesn't.
My UDP mount still locks up with rxcsum turned on.
I experimented a bit with the code around line 887. With
rxcsum and txcsum both turned on:
* With both the IP and UDP/TCP checks removed my UDP mount works.
* With the IP check removed and the UDP/TCP check retained,
the UDP mount does not work.
* With the IP check retained and the UDP/TCP check removed,
the UDP mount works.
Something must be getting set wrong or processed wrong in m_pkthdr
in the UDP/TCP check.
I've enclosed my test patch with comments.
-Matt
Matthew Dillon
<dillon@backplane.com>
Index: if_nfe.c
===================================================================
RCS file: /cvs/src/sys/dev/netif/nfe/if_nfe.c,v
retrieving revision 1.15
diff -u -p -r1.15 if_nfe.c
--- if_nfe.c 10 Aug 2007 15:29:25 -0000 1.15
+++ if_nfe.c 10 Aug 2007 17:25:13 -0000
@@ -886,17 +886,23 @@ m->m_pkthdr.rcvif = ifp;
if ((ifp->if_capenable & IFCAP_RXCSUM) &&
(flags & NFE_RX_CSUMOK)) {
+#if 1
+ /* this works */
if (flags & NFE_RX_IP_CSUMOK_V2) {
m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED |
CSUM_IP_VALID;
}
+#endif
+#if 0
+ /* this doesn't work */
if (flags &
(NFE_RX_UDP_CSUMOK_V2 | NFE_RX_TCP_CSUMOK_V2)) {
m->m_pkthdr.csum_flags |= CSUM_DATA_VALID |
CSUM_PSEUDO_HDR;
m->m_pkthdr.csum_data = 0xffff;
}
+#endif
}
ifp->if_ipackets++;
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]