Index: if_ix.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_ix.c,v retrieving revision 1.156 diff -u -p -r1.156 if_ix.c --- if_ix.c 1 Mar 2019 06:15:59 -0000 1.156 +++ if_ix.c 4 Mar 2019 10:39:31 -0000 @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ix.c,v 1.156 2019/03/01 06:15:59 dlg Exp $ */ +/* $OpenBSD: if_ix.c,v 1.154 2019/02/26 03:09:50 dlg Exp $ */ /****************************************************************************** @@ -2609,7 +2609,8 @@ ixgbe_initialize_receive_units(struct ix sc->num_rx_desc * sizeof(union ixgbe_adv_rx_desc)); /* Set up the SRRCTL register */ - srrctl = bufsz | IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF; + srrctl = bufsz | IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF | + IXGBE_SRRCTL_DROP_EN; IXGBE_WRITE_REG(hw, IXGBE_SRRCTL(i), srrctl); /* Setup the HW Rx Head and Tail Descriptor Pointers */ @@ -2903,7 +2904,8 @@ next_desc: } rxr->next_to_check = i; - if_input(ifp, &ml); + if (ifiq_input(&ifp->if_rcv, &ml)) + if_rxr_livelocked(&rxr->rx_ring); if (!(staterr & IXGBE_RXD_STAT_DD)) return FALSE;