untrusted comment: signature from openbsd 5.9 base secret key RWQJVNompF3pwesxkrLps2cdf+wDoQtWpNARdw7/rcw0725Y3VIhGVadXmLXcPgzKyc5o/9xg/YLm261ifNQh5hyGKszRgHXSA4= OpenBSD 5.9 errata 008, May 18, 2016: A problem in the bnx(4) driver may result in corrupted network data. Apply by doing: signify -Vep /etc/signify/openbsd-59-base.pub -x 008_bnx.patch.sig \ -m - | (cd /usr/src && patch -p0) And then rebuild and install a kernel: cd /usr/src/sys/arch/`machine`/conf KK=`sysctl -n kern.osversion | cut -d# -f1` config $KK cd ../compile/$KK make make install Index: sys/dev/pci/if_bnx.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_bnx.c,v retrieving revision 1.120 retrieving revision 1.120.2.1 diff -u -p -r1.120 -r1.120.2.1 --- sys/dev/pci/if_bnx.c 11 Dec 2015 16:07:01 -0000 1.120 +++ sys/dev/pci/if_bnx.c 6 May 2016 03:26:38 -0000 1.120.2.1 @@ -2418,7 +2418,7 @@ bnx_dma_alloc(struct bnx_softc *sc) */ for (i = 0; i < TOTAL_TX_BD; i++) { if (bus_dmamap_create(sc->bnx_dmatag, - MCLBYTES * BNX_MAX_SEGMENTS, USABLE_TX_BD, + MCLBYTES * BNX_MAX_SEGMENTS, BNX_MAX_SEGMENTS, MCLBYTES, 0, BUS_DMA_NOWAIT, &sc->tx_mbuf_map[i])) { printf(": Could not create Tx mbuf %d DMA map!\n", 1); rc = ENOMEM; @@ -4893,7 +4893,8 @@ bnx_start(struct ifnet *ifp) */ used = 0; while (1) { - if (sc->used_tx_bd + used + BNX_MAX_SEGMENTS >= sc->max_tx_bd) { + if (sc->used_tx_bd + used + BNX_MAX_SEGMENTS + 1 >= + sc->max_tx_bd) { DBPRINT(sc, BNX_INFO_SEND, "TX chain is closed for " "business! Total tx_bd used = %d\n", sc->used_tx_bd + used);