summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000/if_igb.c
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2013-01-12 16:05:55 +0000
committersmh <smh@FreeBSD.org>2013-01-12 16:05:55 +0000
commit646e6f2f1a99428b5d7be2272ec83abfed6d75a7 (patch)
treeb1d4e737d2b53fac04b933cd5112bb5b44a0ca42 /sys/dev/e1000/if_igb.c
parent06869490dedc635957de18958cbb53ad84132c36 (diff)
downloadFreeBSD-src-646e6f2f1a99428b5d7be2272ec83abfed6d75a7.zip
FreeBSD-src-646e6f2f1a99428b5d7be2272ec83abfed6d75a7.tar.gz
Fixed mbuf free when receive structures fail to allocate.
This prevents quad igb card on high core machines, without any nmbcluster or igb queue tuning wedging the boot process if all nics are configured. Reviewed by: jfv Approved by: pjd (mentor) MFC after: 1 week
Diffstat (limited to 'sys/dev/e1000/if_igb.c')
-rw-r--r--sys/dev/e1000/if_igb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/e1000/if_igb.c b/sys/dev/e1000/if_igb.c
index 8eb3011..efcbdfd 100644
--- a/sys/dev/e1000/if_igb.c
+++ b/sys/dev/e1000/if_igb.c
@@ -4330,8 +4330,8 @@ fail:
* the rings that completed, the failing case will have
* cleaned up for itself. 'i' is the endpoint.
*/
- for (int j = 0; j > i; ++j) {
- rxr = &adapter->rx_rings[i];
+ for (int j = 0; j < i; ++j) {
+ rxr = &adapter->rx_rings[j];
IGB_RX_LOCK(rxr);
igb_free_receive_ring(rxr);
IGB_RX_UNLOCK(rxr);
OpenPOWER on IntegriCloud