diff options
author | smh <smh@FreeBSD.org> | 2013-01-12 16:05:55 +0000 |
---|---|---|
committer | smh <smh@FreeBSD.org> | 2013-01-12 16:05:55 +0000 |
commit | 646e6f2f1a99428b5d7be2272ec83abfed6d75a7 (patch) | |
tree | b1d4e737d2b53fac04b933cd5112bb5b44a0ca42 /sys/dev/e1000/if_igb.c | |
parent | 06869490dedc635957de18958cbb53ad84132c36 (diff) | |
download | FreeBSD-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.c | 4 |
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); |