diff options
Diffstat (limited to 'sys/dev/pci/if_txp.c')
-rw-r--r-- | sys/dev/pci/if_txp.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/dev/pci/if_txp.c b/sys/dev/pci/if_txp.c index 5d89f092442..7503ef1a30d 100644 --- a/sys/dev/pci/if_txp.c +++ b/sys/dev/pci/if_txp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_txp.c,v 1.45 2001/06/23 20:54:15 jason Exp $ */ +/* $OpenBSD: if_txp.c,v 1.46 2001/06/23 22:56:51 jason Exp $ */ /* * Copyright (c) 2001 @@ -583,7 +583,6 @@ txp_rx_reclaim(sc, r) { struct ifnet *ifp = &sc->sc_arpcom.ac_if; struct txp_rx_desc *rxd; - struct ether_header *eh; struct mbuf *m; struct txp_swdesc *sd; u_int32_t roff, woff; @@ -612,8 +611,6 @@ txp_rx_reclaim(sc, r) free(sd, M_DEVBUF); m->m_pkthdr.len = m->m_len = rxd->rx_len; - eh = mtod(m, struct ether_header *); - #ifdef __STRICT_ALIGNMENT { /* @@ -654,8 +651,6 @@ txp_rx_reclaim(sc, r) bpf_mtap(ifp->if_bpf, m); #endif - m_adj(m, sizeof(struct ether_header)); - if (rxd->rx_stat & RX_STAT_IPCKSUMBAD) sumflags |= M_IPV4_CSUM_IN_BAD; else if (rxd->rx_stat & RX_STAT_IPCKSUMGOOD) @@ -675,13 +670,17 @@ txp_rx_reclaim(sc, r) #if NVLAN > 0 if (rxd->rx_stat & RX_STAT_VLAN) { + struct ether_header *eh; + + eh = mtod(m, struct ether_header *); + m_adj(m, sizeof(struct ether_header)); if (vlan_input_tag(eh, m, htons(rxd->rx_vlan >> 16)) < 0) ifp->if_noproto++; goto next; } #endif - ether_input(ifp, eh, m); + ether_input_mbuf(ifp, m); next: |