diff options
author | jfv <jfv@FreeBSD.org> | 2010-09-07 21:28:45 +0000 |
---|---|---|
committer | jfv <jfv@FreeBSD.org> | 2010-09-07 21:28:45 +0000 |
commit | 675ed4bcb2f7aafc4ef0c6b25aa7af2da90e0bbb (patch) | |
tree | 38fa1219b294ad81d9fc2179e31cf18ce89803e5 /sys/dev/e1000 | |
parent | 62814bf50cf8a8c9acaff4bb25428f2d32f1cf91 (diff) | |
download | FreeBSD-src-675ed4bcb2f7aafc4ef0c6b25aa7af2da90e0bbb.zip FreeBSD-src-675ed4bcb2f7aafc4ef0c6b25aa7af2da90e0bbb.tar.gz |
Code correction in refresh_mbufs, just continuing
without index recalc was wrong.
Diffstat (limited to 'sys/dev/e1000')
-rw-r--r-- | sys/dev/e1000/if_em.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 9c5a609..397a7e6 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3696,7 +3696,7 @@ em_refresh_mbufs(struct rx_ring *rxr, int limit) ** and are to be reused. */ if (rxbuf->m_head != NULL) - continue; + goto reuse; m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); /* ** If we have a temporary resource shortage @@ -3726,7 +3726,7 @@ em_refresh_mbufs(struct rx_ring *rxr, int limit) rxbuf->map, BUS_DMASYNC_PREREAD); rxbuf->m_head = m; rxr->rx_base[i].buffer_addr = htole64(segs[0].ds_addr); - +reuse: cleaned = i; /* Calculate next index */ if (++i == adapter->num_rx_desc) |