Module Name: src
Committed By: msaitoh
Date: Thu Sep 6 08:20:12 UTC 2018
Modified Files:
src/sys/dev/pci/ixgbe: ix_txrx.c
Log Message:
Fix a bug that ixgbe_mq_start(an if_transmit function) returned wrong
vaue on error. pcq_put returns false on error, so returning it to caller
indicated no error.
XXX pullup-8
To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 src/sys/dev/pci/ixgbe/ix_txrx.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ix_txrx.c
diff -u src/sys/dev/pci/ixgbe/ix_txrx.c:1.49 src/sys/dev/pci/ixgbe/ix_txrx.c:1.50
--- src/sys/dev/pci/ixgbe/ix_txrx.c:1.49 Tue Jul 31 09:19:34 2018
+++ src/sys/dev/pci/ixgbe/ix_txrx.c Thu Sep 6 08:20:12 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ix_txrx.c,v 1.49 2018/07/31 09:19:34 msaitoh Exp $ */
+/* $NetBSD: ix_txrx.c,v 1.50 2018/09/06 08:20:12 msaitoh Exp $ */
/******************************************************************************
@@ -202,7 +202,7 @@ ixgbe_mq_start(struct ifnet *ifp, struct
{
struct adapter *adapter = ifp->if_softc;
struct tx_ring *txr;
- int i, err = 0;
+ int i;
#ifdef RSS
uint32_t bucket_id;
#endif
@@ -238,11 +238,10 @@ ixgbe_mq_start(struct ifnet *ifp, struct
txr = &adapter->tx_rings[i];
- err = pcq_put(txr->txr_interq, m);
- if (err == false) {
+ if (__predict_false(!pcq_put(txr->txr_interq, m))) {
m_freem(m);
txr->pcq_drops.ev_count++;
- return (err);
+ return ENOBUFS;
}
if (IXGBE_TX_TRYLOCK(txr)) {
ixgbe_mq_start_locked(ifp, txr);