Deleted Added
full compact
35c35
< __FBSDID("$FreeBSD: head/sys/dev/bge/if_bge.c 219902 2011-03-23 13:10:15Z jhb $");
---
> __FBSDID("$FreeBSD: head/sys/dev/bge/if_bge.c 220368 2011-04-05 17:41:54Z yongari $");
946,949c946,958
< m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
< if (m == NULL)
< return (ENOBUFS);
< m->m_len = m->m_pkthdr.len = MCLBYTES;
---
> if (sc->bge_flags & BGE_FLAG_JUMBO_STD &&
> (sc->bge_ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN +
> ETHER_VLAN_ENCAP_LEN > (MCLBYTES - ETHER_ALIGN))) {
> m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES);
> if (m == NULL)
> return (ENOBUFS);
> m->m_len = m->m_pkthdr.len = MJUM9BYTES;
> } else {
> m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
> if (m == NULL)
> return (ENOBUFS);
> m->m_len = m->m_pkthdr.len = MCLBYTES;
> }
2388c2397
< bus_size_t boundary, sbsz, txsegsz, txmaxsegsz;
---
> bus_size_t boundary, sbsz, rxmaxsegsz, txsegsz, txmaxsegsz;
2515a2525,2528
> if (sc->bge_flags & BGE_FLAG_JUMBO_STD)
> rxmaxsegsz = MJUM9BYTES;
> else
> rxmaxsegsz = MCLBYTES;
2517,2518c2530,2531
< BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, 1,
< MCLBYTES, 0, NULL, NULL, &sc->bge_cdata.bge_rx_mtag);
---
> BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, rxmaxsegsz, 1,
> rxmaxsegsz, 0, NULL, NULL, &sc->bge_cdata.bge_rx_mtag);
2762c2775
< sc->bge_flags |= BGE_FLAG_5714_FAMILY /* | BGE_FLAG_JUMBO */;
---
> sc->bge_flags |= BGE_FLAG_5714_FAMILY | BGE_FLAG_JUMBO_STD;
3563c3576,3577
< if (ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
---
> if (BGE_IS_JUMBO_CAPABLE(sc) &&
> ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
4692c4706,4707
< if (ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
---
> if (BGE_IS_JUMBO_CAPABLE(sc) &&
> ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN >
4916a4932,4942
> if (BGE_IS_JUMBO_CAPABLE(sc) ||
> (sc->bge_flags & BGE_FLAG_JUMBO_STD)) {
> if (ifr->ifr_mtu < ETHERMIN ||
> ifr->ifr_mtu > BGE_JUMBO_MTU) {
> error = EINVAL;
> break;
> }
> } else if (ifr->ifr_mtu < ETHERMIN || ifr->ifr_mtu > ETHERMTU) {
> error = EINVAL;
> break;
> }
4918,4924c4944
< if (ifr->ifr_mtu < ETHERMIN ||
< ((BGE_IS_JUMBO_CAPABLE(sc)) &&
< ifr->ifr_mtu > BGE_JUMBO_MTU) ||
< ((!BGE_IS_JUMBO_CAPABLE(sc)) &&
< ifr->ifr_mtu > ETHERMTU))
< error = EINVAL;
< else if (ifp->if_mtu != ifr->ifr_mtu) {
---
> if (ifp->if_mtu != ifr->ifr_mtu) {