Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Three sets of overlapping changes. Nothing serious. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -192,6 +192,11 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc,
|
||||
msg, msg->expires_at, jiffies);
|
||||
}
|
||||
|
||||
if (asoc->peer.prsctp_capable &&
|
||||
SCTP_PR_TTL_ENABLED(sinfo->sinfo_flags))
|
||||
msg->expires_at =
|
||||
jiffies + msecs_to_jiffies(sinfo->sinfo_timetolive);
|
||||
|
||||
/* This is the biggest possible DATA chunk that can fit into
|
||||
* the packet
|
||||
*/
|
||||
@@ -349,7 +354,7 @@ errout:
|
||||
/* Check whether this message has expired. */
|
||||
int sctp_chunk_abandoned(struct sctp_chunk *chunk)
|
||||
{
|
||||
if (!chunk->asoc->prsctp_enable ||
|
||||
if (!chunk->asoc->peer.prsctp_capable ||
|
||||
!SCTP_PR_POLICY(chunk->sinfo.sinfo_flags)) {
|
||||
struct sctp_datamsg *msg = chunk->msg;
|
||||
|
||||
@@ -363,14 +368,14 @@ int sctp_chunk_abandoned(struct sctp_chunk *chunk)
|
||||
}
|
||||
|
||||
if (SCTP_PR_TTL_ENABLED(chunk->sinfo.sinfo_flags) &&
|
||||
time_after(jiffies, chunk->prsctp_param)) {
|
||||
time_after(jiffies, chunk->msg->expires_at)) {
|
||||
if (chunk->sent_count)
|
||||
chunk->asoc->abandoned_sent[SCTP_PR_INDEX(TTL)]++;
|
||||
else
|
||||
chunk->asoc->abandoned_unsent[SCTP_PR_INDEX(TTL)]++;
|
||||
return 1;
|
||||
} else if (SCTP_PR_RTX_ENABLED(chunk->sinfo.sinfo_flags) &&
|
||||
chunk->sent_count > chunk->prsctp_param) {
|
||||
chunk->sent_count > chunk->sinfo.sinfo_timetolive) {
|
||||
chunk->asoc->abandoned_sent[SCTP_PR_INDEX(RTX)]++;
|
||||
return 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user