mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c net/ipv6/ip6_tunnel.c net/ipv6/ip6_vti.c ipv6 tunnel statistic bug fixes conflicting with consolidation into generic sw per-cpu net stats. qlogic conflict between queue counting bug fix and the addition of multiple MAC address support. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
56a4342dfe
347 changed files with 3697 additions and 1791 deletions
|
@ -207,8 +207,6 @@ void sctp_outq_init(struct sctp_association *asoc, struct sctp_outq *q)
|
|||
INIT_LIST_HEAD(&q->retransmit);
|
||||
INIT_LIST_HEAD(&q->sacked);
|
||||
INIT_LIST_HEAD(&q->abandoned);
|
||||
|
||||
q->empty = 1;
|
||||
}
|
||||
|
||||
/* Free the outqueue structure and any related pending chunks.
|
||||
|
@ -331,7 +329,6 @@ int sctp_outq_tail(struct sctp_outq *q, struct sctp_chunk *chunk)
|
|||
SCTP_INC_STATS(net, SCTP_MIB_OUTUNORDERCHUNKS);
|
||||
else
|
||||
SCTP_INC_STATS(net, SCTP_MIB_OUTORDERCHUNKS);
|
||||
q->empty = 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
@ -653,7 +650,6 @@ redo:
|
|||
if (chunk->fast_retransmit == SCTP_NEED_FRTX)
|
||||
chunk->fast_retransmit = SCTP_DONT_FRTX;
|
||||
|
||||
q->empty = 0;
|
||||
q->asoc->stats.rtxchunks++;
|
||||
break;
|
||||
}
|
||||
|
@ -1064,8 +1060,6 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
|
|||
|
||||
sctp_transport_reset_timers(transport);
|
||||
|
||||
q->empty = 0;
|
||||
|
||||
/* Only let one DATA chunk get bundled with a
|
||||
* COOKIE-ECHO chunk.
|
||||
*/
|
||||
|
@ -1274,29 +1268,17 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
|
|||
"advertised peer ack point:0x%x\n", __func__, asoc, ctsn,
|
||||
asoc->adv_peer_ack_point);
|
||||
|
||||
/* See if all chunks are acked.
|
||||
* Make sure the empty queue handler will get run later.
|
||||
*/
|
||||
q->empty = (list_empty(&q->out_chunk_list) &&
|
||||
list_empty(&q->retransmit));
|
||||
if (!q->empty)
|
||||
goto finish;
|
||||
|
||||
list_for_each_entry(transport, transport_list, transports) {
|
||||
q->empty = q->empty && list_empty(&transport->transmitted);
|
||||
if (!q->empty)
|
||||
goto finish;
|
||||
}
|
||||
|
||||
pr_debug("%s: sack queue is empty\n", __func__);
|
||||
finish:
|
||||
return q->empty;
|
||||
return sctp_outq_is_empty(q);
|
||||
}
|
||||
|
||||
/* Is the outqueue empty? */
|
||||
/* Is the outqueue empty?
|
||||
* The queue is empty when we have not pending data, no in-flight data
|
||||
* and nothing pending retransmissions.
|
||||
*/
|
||||
int sctp_outq_is_empty(const struct sctp_outq *q)
|
||||
{
|
||||
return q->empty;
|
||||
return q->out_qlen == 0 && q->outstanding_bytes == 0 &&
|
||||
list_empty(&q->retransmit);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue