diff options
| author | Andre Oppermann <andre@FreeBSD.org> | 2006-09-17 13:33:30 +0000 |
|---|---|---|
| committer | Andre Oppermann <andre@FreeBSD.org> | 2006-09-17 13:33:30 +0000 |
| commit | 78ba57b9e1fd08812b6f5a1b48a20d624a23b31d (patch) | |
| tree | 0c60fd4adaa245ddeb4255e5c579b7939f52463f /sys/dev/nfe | |
| parent | da7cbdc2b35dbefee71d96d4df0d67b427b92f75 (diff) | |
Notes
Diffstat (limited to 'sys/dev/nfe')
| -rw-r--r-- | sys/dev/nfe/if_nfe.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c index 356f50c67b73..9890dddbc918 100644 --- a/sys/dev/nfe/if_nfe.c +++ b/sys/dev/nfe/if_nfe.c @@ -1482,9 +1482,8 @@ static void nfe_rxeof(struct nfe_softc *sc) #if NVLAN > 1 if (have_tag) { - VLAN_INPUT_TAG_NEW(ifp, m, vlan_tag); - if (m == NULL) - continue; + m->m_pkthdr.ether_vtag = vlan_tag; + m->m_flags |= M_VLANTAG; } #endif @@ -1604,9 +1603,6 @@ static int nfe_encap(struct nfe_softc *sc, struct mbuf *m0) struct nfe_tx_data *data=NULL; bus_dmamap_t map; u_int16_t flags = NFE_TX_VALID; -#if NVLAN > 0 - struct m_tag *vtag; -#endif bus_dma_segment_t segs[NFE_MAX_SCATTER]; int nsegs; int error, i; @@ -1628,11 +1624,6 @@ static int nfe_encap(struct nfe_softc *sc, struct mbuf *m0) } -#if NVLAN > 0 - /* setup h/w VLAN tagging */ - vtag = VLAN_OUTPUT_TAG(sc->nfe_ifp, m0); -#endif - #ifdef NFE_CSUM if (m0->m_pkthdr.csum_flags & CSUM_IP) flags |= NFE_TX_IP_CSUM; @@ -1655,8 +1646,9 @@ static int nfe_encap(struct nfe_softc *sc, struct mbuf *m0) desc64->length = htole16(segs[i].ds_len - 1); desc64->flags = htole16(flags); #if NVLAN > 0 - desc64->vtag = htole32(NFE_TX_VTAG | - VLAN_TAG_VALUE(vtag)); + if (m0->m_flags & M_VLANTAG) + desc64->vtag = htole32(NFE_TX_VTAG | + m0->m_pkthdr.ether_vtag); #endif } else { desc32 = &sc->txq.desc32[sc->txq.cur]; @@ -1669,9 +1661,6 @@ static int nfe_encap(struct nfe_softc *sc, struct mbuf *m0) /* csum flags and vtag belong to the first fragment only */ if (nsegs > 1) { flags &= ~(NFE_TX_IP_CSUM | NFE_TX_TCP_CSUM); -#if NVLAN > 0 - vtag = 0; -#endif } sc->txq.queued++; |
