Page MenuHomeFreeBSD

D54754.diff
No OneTemporary

D54754.diff

diff --git a/sys/dev/dwc/dwc1000_dma.c b/sys/dev/dwc/dwc1000_dma.c
--- a/sys/dev/dwc/dwc1000_dma.c
+++ b/sys/dev/dwc/dwc1000_dma.c
@@ -276,7 +276,7 @@
m = *mp;
- if ((m->m_pkthdr.csum_flags & CSUM_DELAY_DATA) != 0)
+ if ((m->m_pkthdr.csum_flags & (CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6)) != 0)
flags = sc->dma_ext_desc ? ETDESC0_CIC_SEG : NTDESC1_CIC_SEG;
else if ((m->m_pkthdr.csum_flags & CSUM_IP) != 0)
flags = sc->dma_ext_desc ? ETDESC0_CIC_HDR : NTDESC1_CIC_HDR;
diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c
--- a/sys/dev/dwc/if_dwc.c
+++ b/sys/dev/dwc/if_dwc.c
@@ -271,6 +271,12 @@
if_sethwassistbits(ifp, CSUM_IP | CSUM_DELAY_DATA, 0);
else
if_sethwassistbits(ifp, 0, CSUM_IP | CSUM_DELAY_DATA);
+ if (mask & IFCAP_TXCSUM_IPV6)
+ if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6);
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM_IPV6) != 0)
+ if_sethwassistbits(ifp, CSUM_DELAY_DATA_IPV6, 0);
+ else
+ if_sethwassistbits(ifp, 0, CSUM_DELAY_DATA_IPV6);
if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
DWC_LOCK(sc);
@@ -607,8 +613,8 @@
if_setinitfn(ifp, dwc_init);
if_setsendqlen(ifp, TX_MAP_COUNT - 1);
if_setsendqready(sc->ifp);
- if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA);
- if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM);
+ if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6);
+ if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TXCSUM_IPV6);
if_setcapenable(sc->ifp, if_getcapabilities(sc->ifp));
/* Attach the mii driver. */

File Metadata

Mime Type
text/plain
Expires
Tue, Jan 20, 1:23 AM (12 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27709006
Default Alt Text
D54754.diff (1 KB)

Event Timeline