Page MenuHomeFreeBSD

D2546.diff
No OneTemporary

D2546.diff

Index: head/sys/dev/sfxge/sfxge.c
===================================================================
--- head/sys/dev/sfxge/sfxge.c
+++ head/sys/dev/sfxge/sfxge.c
@@ -282,10 +282,14 @@
ifp->if_hwassist |= (CSUM_TCP_IPV6 | CSUM_UDP_IPV6);
else
ifp->if_hwassist &= ~(CSUM_TCP_IPV6 | CSUM_UDP_IPV6);
- if (ifp->if_capenable & IFCAP_TSO)
- ifp->if_hwassist |= CSUM_TSO;
- else
- ifp->if_hwassist &= ~CSUM_TSO;
+
+ /*
+ * The kernel takes both IFCAP_TSOx and CSUM_TSO into
+ * account before using TSO. So, we do not touch
+ * checksum flags when IFCAP_TSOx is modified.
+ * Note that CSUM_TSO is (CSUM_IP_TSO|CSUM_IP6_TSO),
+ * but both bits are set in IPv4 and IPv6 mbufs.
+ */
SFXGE_ADAPTER_UNLOCK(sc);
break;

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 21, 11:20 PM (4 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27124363
Default Alt Text
D2546.diff (747 B)

Event Timeline