aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorNavdeep Parhar <np@FreeBSD.org>2011-03-05 04:04:23 +0000
committerNavdeep Parhar <np@FreeBSD.org>2011-03-05 04:04:23 +0000
commit83d58badea0890562d56532a7218fe27407577ec (patch)
tree9136308786ea63f4779b44ff121faea9aba6ddc8 /sys
parente874ff7a8baade7fa1b171bdf8e991bfcaa9b8e0 (diff)
downloadsrc-83d58badea0890562d56532a7218fe27407577ec.tar.gz
src-83d58badea0890562d56532a7218fe27407577ec.zip
There is no need to hold an ingress queue's lock while processing its
descriptors. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=219293
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/cxgbe/t4_sge.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c
index d98683a2c2af..8bdab95fa947 100644
--- a/sys/dev/cxgbe/t4_sge.c
+++ b/sys/dev/cxgbe/t4_sge.c
@@ -414,7 +414,6 @@ t4_intr_fwd(void *arg)
int ndesc_pending = 0, ndesc_total = 0;
int qid;
- IQ_LOCK(iq);
while (is_new_response(iq, &ctrl)) {
rmb();
@@ -441,7 +440,6 @@ t4_intr_fwd(void *arg)
iq_next(iq);
}
- IQ_UNLOCK(iq);
if (ndesc_total > 0) {
t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS),
@@ -474,7 +472,6 @@ t4_intr_evt(void *arg)
KASSERT(iq == &sc->sge.fwq, ("%s: unexpected ingress queue", __func__));
- IQ_LOCK(iq);
while (is_new_response(iq, &ctrl)) {
rmb();
@@ -517,7 +514,6 @@ t4_intr_evt(void *arg)
}
iq_next(iq);
}
- IQ_UNLOCK(iq);
if (ndesc_total > 0) {
t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS),
@@ -549,7 +545,6 @@ t4_intr_data(void *arg)
prefetch(sd->m);
prefetch(sd->cl);
- IQ_LOCK(iq);
iq->intr_next = iq->intr_params;
while (is_new_response(iq, &ctrl)) {
@@ -670,7 +665,6 @@ t4_intr_data(void *arg)
len -= m->m_len;
}
- IQ_UNLOCK(iq);
#ifdef INET
if (cpl->l2info & htobe32(F_RXF_LRO) &&
rxq->flags & RXQ_LRO_ENABLED &&
@@ -679,7 +673,6 @@ t4_intr_data(void *arg)
} else
#endif
ifp->if_input(ifp, m0);
- IQ_LOCK(iq);
FL_LOCK(fl);
fl->needed += i;
@@ -700,7 +693,6 @@ nextdesc: ndescs++;
ndescs = 0;
}
}
- IQ_UNLOCK(iq);
#ifdef INET
while (!SLIST_EMPTY(&lro->lro_active)) {