svn commit: r264036 - in projects/sendfile/sys/dev/cxgbe: iw_cxgbe tom
Gleb Smirnoff
glebius at FreeBSD.org
Wed Apr 2 10:38:42 UTC 2014
Author: glebius
Date: Wed Apr 2 10:38:41 2014
New Revision: 264036
URL: http://svnweb.freebsd.org/changeset/base/264036
Log:
Use sbused() instead of access to sb_cc in cxgbe(4).
Modified:
projects/sendfile/sys/dev/cxgbe/iw_cxgbe/cm.c
projects/sendfile/sys/dev/cxgbe/tom/t4_cpl_io.c
projects/sendfile/sys/dev/cxgbe/tom/t4_ddp.c
Modified: projects/sendfile/sys/dev/cxgbe/iw_cxgbe/cm.c
==============================================================================
--- projects/sendfile/sys/dev/cxgbe/iw_cxgbe/cm.c Wed Apr 2 10:07:36 2014 (r264035)
+++ projects/sendfile/sys/dev/cxgbe/iw_cxgbe/cm.c Wed Apr 2 10:38:41 2014 (r264036)
@@ -585,8 +585,8 @@ process_data(struct c4iw_ep *ep)
{
struct sockaddr_in *local, *remote;
- CTR5(KTR_IW_CXGBE, "%s: so %p, ep %p, state %s, sb_cc %d", __func__,
- ep->com.so, ep, states[ep->com.state], ep->com.so->so_rcv.sb_cc);
+ CTR5(KTR_IW_CXGBE, "%s: so %p, ep %p, state %s, sbused %d", __func__,
+ ep->com.so, ep, states[ep->com.state], sbused(&ep->com.so->so_rcv));
switch (state_read(&ep->com)) {
case MPA_REQ_SENT:
@@ -602,11 +602,11 @@ process_data(struct c4iw_ep *ep)
process_mpa_request(ep);
break;
default:
- if (ep->com.so->so_rcv.sb_cc)
- log(LOG_ERR, "%s: Unexpected streaming data. "
- "ep %p, state %d, so %p, so_state 0x%x, sb_cc %u\n",
+ if (sbused(&ep->com.so->so_rcv))
+ log(LOG_ERR, "%s: Unexpected streaming data. ep %p, "
+ "state %d, so %p, so_state 0x%x, sbused %u\n",
__func__, ep, state_read(&ep->com), ep->com.so,
- ep->com.so->so_state, ep->com.so->so_rcv.sb_cc);
+ ep->com.so->so_state, sbused(&ep->com.so->so_rcv));
break;
}
}
Modified: projects/sendfile/sys/dev/cxgbe/tom/t4_cpl_io.c
==============================================================================
--- projects/sendfile/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Apr 2 10:07:36 2014 (r264035)
+++ projects/sendfile/sys/dev/cxgbe/tom/t4_cpl_io.c Wed Apr 2 10:38:41 2014 (r264036)
@@ -338,11 +338,11 @@ t4_rcvd(struct toedev *tod, struct tcpcb
INP_WLOCK_ASSERT(inp);
SOCKBUF_LOCK(sb);
- KASSERT(toep->sb_cc >= sb->sb_cc,
+ KASSERT(toep->sb_cc >= sbused(sb),
("%s: sb %p has more data (%d) than last time (%d).",
- __func__, sb, sb->sb_cc, toep->sb_cc));
- toep->rx_credits += toep->sb_cc - sb->sb_cc;
- toep->sb_cc = sb->sb_cc;
+ __func__, sb, sbused(sb), toep->sb_cc));
+ toep->rx_credits += toep->sb_cc - sbused(sb);
+ toep->sb_cc = sbused(sb);
credits = toep->rx_credits;
SOCKBUF_UNLOCK(sb);
@@ -863,15 +863,15 @@ do_peer_close(struct sge_iq *iq, const s
tp->rcv_nxt = be32toh(cpl->rcv_nxt);
toep->ddp_flags &= ~(DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE);
- KASSERT(toep->sb_cc >= sb->sb_cc,
+ KASSERT(toep->sb_cc >= sbused(sb),
("%s: sb %p has more data (%d) than last time (%d).",
- __func__, sb, sb->sb_cc, toep->sb_cc));
- toep->rx_credits += toep->sb_cc - sb->sb_cc;
+ __func__, sb, sbused(sb), toep->sb_cc));
+ toep->rx_credits += toep->sb_cc - sbused(sb);
#ifdef USE_DDP_RX_FLOW_CONTROL
toep->rx_credits -= m->m_len; /* adjust for F_RX_FC_DDP */
#endif
sbappendstream_locked(sb, m, 0);
- toep->sb_cc = sb->sb_cc;
+ toep->sb_cc = sbused(sb);
}
socantrcvmore_locked(so); /* unlocks the sockbuf */
@@ -1281,12 +1281,12 @@ do_rx_data(struct sge_iq *iq, const stru
}
}
- KASSERT(toep->sb_cc >= sb->sb_cc,
+ KASSERT(toep->sb_cc >= sbused(sb),
("%s: sb %p has more data (%d) than last time (%d).",
- __func__, sb, sb->sb_cc, toep->sb_cc));
- toep->rx_credits += toep->sb_cc - sb->sb_cc;
+ __func__, sb, sbused(sb), toep->sb_cc));
+ toep->rx_credits += toep->sb_cc - sbused(sb);
sbappendstream_locked(sb, m, 0);
- toep->sb_cc = sb->sb_cc;
+ toep->sb_cc = sbused(sb);
sorwakeup_locked(so);
SOCKBUF_UNLOCK_ASSERT(sb);
Modified: projects/sendfile/sys/dev/cxgbe/tom/t4_ddp.c
==============================================================================
--- projects/sendfile/sys/dev/cxgbe/tom/t4_ddp.c Wed Apr 2 10:07:36 2014 (r264035)
+++ projects/sendfile/sys/dev/cxgbe/tom/t4_ddp.c Wed Apr 2 10:38:41 2014 (r264036)
@@ -224,15 +224,15 @@ insert_ddp_data(struct toepcb *toep, uin
tp->rcv_wnd -= n;
#endif
- KASSERT(toep->sb_cc >= sb->sb_cc,
+ KASSERT(toep->sb_cc >= sbused(sb),
("%s: sb %p has more data (%d) than last time (%d).",
- __func__, sb, sb->sb_cc, toep->sb_cc));
- toep->rx_credits += toep->sb_cc - sb->sb_cc;
+ __func__, sb, sbused(sb), toep->sb_cc));
+ toep->rx_credits += toep->sb_cc - sbused(sb);
#ifdef USE_DDP_RX_FLOW_CONTROL
toep->rx_credits -= n; /* adjust for F_RX_FC_DDP */
#endif
sbappendstream_locked(sb, m, 0);
- toep->sb_cc = sb->sb_cc;
+ toep->sb_cc = sbused(sb);
}
/* SET_TCB_FIELD sent as a ULP command looks like this */
@@ -459,15 +459,15 @@ handle_ddp_data(struct toepcb *toep, __b
else
discourage_ddp(toep);
- KASSERT(toep->sb_cc >= sb->sb_cc,
+ KASSERT(toep->sb_cc >= sbused(sb),
("%s: sb %p has more data (%d) than last time (%d).",
- __func__, sb, sb->sb_cc, toep->sb_cc));
- toep->rx_credits += toep->sb_cc - sb->sb_cc;
+ __func__, sb, sbused(sb), toep->sb_cc));
+ toep->rx_credits += toep->sb_cc - sbused(sb);
#ifdef USE_DDP_RX_FLOW_CONTROL
toep->rx_credits -= len; /* adjust for F_RX_FC_DDP */
#endif
sbappendstream_locked(sb, m, 0);
- toep->sb_cc = sb->sb_cc;
+ toep->sb_cc = sbused(sb);
wakeup:
KASSERT(toep->ddp_flags & db_flag,
("%s: DDP buffer not active. toep %p, ddp_flags 0x%x, report 0x%x",
@@ -897,7 +897,7 @@ handle_ddp(struct socket *so, struct uio
#endif
/* XXX: too eager to disable DDP, could handle NBIO better than this. */
- if (sb->sb_cc >= uio->uio_resid || uio->uio_resid < sc->tt.ddp_thres ||
+ if (sbused(sb) >= uio->uio_resid || uio->uio_resid < sc->tt.ddp_thres ||
uio->uio_resid > MAX_DDP_BUFFER_SIZE || uio->uio_iovcnt > 1 ||
so->so_state & SS_NBIO || flags & (MSG_DONTWAIT | MSG_NBIO) ||
error || so->so_error || sb->sb_state & SBS_CANTRCVMORE)
@@ -935,7 +935,7 @@ handle_ddp(struct socket *so, struct uio
* payload.
*/
ddp_flags = select_ddp_flags(so, flags, db_idx);
- wr = mk_update_tcb_for_ddp(sc, toep, db_idx, sb->sb_cc, ddp_flags);
+ wr = mk_update_tcb_for_ddp(sc, toep, db_idx, sbused(sb), ddp_flags);
if (wr == NULL) {
/*
* Just unhold the pages. The DDP buffer's software state is
@@ -960,8 +960,9 @@ handle_ddp(struct socket *so, struct uio
*/
rc = sbwait(sb);
while (toep->ddp_flags & buf_flag) {
+ /* XXXGL: shouldn't here be sbwait() call? */
sb->sb_flags |= SB_WAIT;
- msleep(&sb->sb_cc, &sb->sb_mtx, PSOCK , "sbwait", 0);
+ msleep(&sb->sb_acc, &sb->sb_mtx, PSOCK , "sbwait", 0);
}
unwire_ddp_buffer(db);
return (rc);
@@ -1123,8 +1124,8 @@ restart:
/* uio should be just as it was at entry */
KASSERT(oresid == uio->uio_resid,
- ("%s: oresid = %d, uio_resid = %zd, sb_cc = %d",
- __func__, oresid, uio->uio_resid, sb->sb_cc));
+ ("%s: oresid = %d, uio_resid = %zd, sbused = %d",
+ __func__, oresid, uio->uio_resid, sbused(sb)));
error = handle_ddp(so, uio, flags, 0);
ddp_handled = 1;
@@ -1134,7 +1135,7 @@ restart:
/* Abort if socket has reported problems. */
if (so->so_error) {
- if (sb->sb_cc > 0)
+ if (sbused(sb))
goto deliver;
if (oresid > uio->uio_resid)
goto out;
@@ -1146,32 +1147,32 @@ restart:
/* Door is closed. Deliver what is left, if any. */
if (sb->sb_state & SBS_CANTRCVMORE) {
- if (sb->sb_cc > 0)
+ if (sbused(sb))
goto deliver;
else
goto out;
}
/* Socket buffer is empty and we shall not block. */
- if (sb->sb_cc == 0 &&
+ if (sbused(sb) == 0 &&
((so->so_state & SS_NBIO) || (flags & (MSG_DONTWAIT|MSG_NBIO)))) {
error = EAGAIN;
goto out;
}
/* Socket buffer got some data that we shall deliver now. */
- if (sb->sb_cc > 0 && !(flags & MSG_WAITALL) &&
+ if (sbused(sb) && !(flags & MSG_WAITALL) &&
((sb->sb_flags & SS_NBIO) ||
(flags & (MSG_DONTWAIT|MSG_NBIO)) ||
- sb->sb_cc >= sb->sb_lowat ||
- sb->sb_cc >= uio->uio_resid ||
- sb->sb_cc >= sb->sb_hiwat) ) {
+ sbused(sb) >= sb->sb_lowat ||
+ sbused(sb) >= uio->uio_resid ||
+ sbused(sb) >= sb->sb_hiwat) ) {
goto deliver;
}
/* On MSG_WAITALL we must wait until all data or error arrives. */
if ((flags & MSG_WAITALL) &&
- (sb->sb_cc >= uio->uio_resid || sb->sb_cc >= sb->sb_lowat))
+ (sbused(sb) >= uio->uio_resid || sbused(sb) >= sb->sb_lowat))
goto deliver;
/*
@@ -1190,7 +1191,7 @@ restart:
deliver:
SOCKBUF_LOCK_ASSERT(&so->so_rcv);
- KASSERT(sb->sb_cc > 0, ("%s: sockbuf empty", __func__));
+ KASSERT(sbused(sb) > 0, ("%s: sockbuf empty", __func__));
KASSERT(sb->sb_mb != NULL, ("%s: sb_mb == NULL", __func__));
if (sb->sb_flags & SB_DDP_INDICATE && !ddp_handled)
@@ -1201,7 +1202,7 @@ deliver:
uio->uio_td->td_ru.ru_msgrcv++;
/* Fill uio until full or current end of socket buffer is reached. */
- len = min(uio->uio_resid, sb->sb_cc);
+ len = min(uio->uio_resid, sbused(sb));
if (mp0 != NULL) {
/* Dequeue as many mbufs as possible. */
if (!(flags & MSG_PEEK) && len >= sb->sb_mb->m_len) {
More information about the svn-src-projects
mailing list