Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: net/bluetooth/l2cap_core.c Just two overlapping changes, one added an initialization of a local variable, and another change added a new local variable. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -173,7 +173,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
|
||||
asoc->timeouts[SCTP_EVENT_TIMEOUT_HEARTBEAT] = 0;
|
||||
asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] = asoc->sackdelay;
|
||||
asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] =
|
||||
(unsigned long)sp->autoclose * HZ;
|
||||
min_t(unsigned long, sp->autoclose, sctp_max_autoclose) * HZ;
|
||||
|
||||
/* Initializes the timers */
|
||||
for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i)
|
||||
|
@@ -697,13 +697,7 @@ static void sctp_packet_append_data(struct sctp_packet *packet,
|
||||
/* Keep track of how many bytes are in flight to the receiver. */
|
||||
asoc->outqueue.outstanding_bytes += datasize;
|
||||
|
||||
/* Update our view of the receiver's rwnd. Include sk_buff overhead
|
||||
* while updating peer.rwnd so that it reduces the chances of a
|
||||
* receiver running out of receive buffer space even when receive
|
||||
* window is still open. This can happen when a sender is sending
|
||||
* sending small messages.
|
||||
*/
|
||||
datasize += sizeof(struct sk_buff);
|
||||
/* Update our view of the receiver's rwnd. */
|
||||
if (datasize < rwnd)
|
||||
rwnd -= datasize;
|
||||
else
|
||||
|
@@ -411,8 +411,7 @@ void sctp_retransmit_mark(struct sctp_outq *q,
|
||||
chunk->transport->flight_size -=
|
||||
sctp_data_size(chunk);
|
||||
q->outstanding_bytes -= sctp_data_size(chunk);
|
||||
q->asoc->peer.rwnd += (sctp_data_size(chunk) +
|
||||
sizeof(struct sk_buff));
|
||||
q->asoc->peer.rwnd += sctp_data_size(chunk);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -432,8 +431,7 @@ void sctp_retransmit_mark(struct sctp_outq *q,
|
||||
* (Section 7.2.4)), add the data size of those
|
||||
* chunks to the rwnd.
|
||||
*/
|
||||
q->asoc->peer.rwnd += (sctp_data_size(chunk) +
|
||||
sizeof(struct sk_buff));
|
||||
q->asoc->peer.rwnd += sctp_data_size(chunk);
|
||||
q->outstanding_bytes -= sctp_data_size(chunk);
|
||||
if (chunk->transport)
|
||||
transport->flight_size -= sctp_data_size(chunk);
|
||||
|
@@ -1285,6 +1285,9 @@ SCTP_STATIC __init int sctp_init(void)
|
||||
sctp_max_instreams = SCTP_DEFAULT_INSTREAMS;
|
||||
sctp_max_outstreams = SCTP_DEFAULT_OUTSTREAMS;
|
||||
|
||||
/* Initialize maximum autoclose timeout. */
|
||||
sctp_max_autoclose = INT_MAX / HZ;
|
||||
|
||||
/* Initialize handle used for association ids. */
|
||||
idr_init(&sctp_assocs_id);
|
||||
|
||||
|
@@ -2200,8 +2200,6 @@ static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval,
|
||||
return -EINVAL;
|
||||
if (copy_from_user(&sp->autoclose, optval, optlen))
|
||||
return -EFAULT;
|
||||
/* make sure it won't exceed MAX_SCHEDULE_TIMEOUT */
|
||||
sp->autoclose = min_t(long, sp->autoclose, MAX_SCHEDULE_TIMEOUT / HZ);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -53,6 +53,10 @@ static int sack_timer_min = 1;
|
||||
static int sack_timer_max = 500;
|
||||
static int addr_scope_max = 3; /* check sctp_scope_policy_t in include/net/sctp/constants.h for max entries */
|
||||
static int rwnd_scale_max = 16;
|
||||
static unsigned long max_autoclose_min = 0;
|
||||
static unsigned long max_autoclose_max =
|
||||
(MAX_SCHEDULE_TIMEOUT / HZ > UINT_MAX)
|
||||
? UINT_MAX : MAX_SCHEDULE_TIMEOUT / HZ;
|
||||
|
||||
extern long sysctl_sctp_mem[3];
|
||||
extern int sysctl_sctp_rmem[3];
|
||||
@@ -258,6 +262,15 @@ static ctl_table sctp_table[] = {
|
||||
.extra1 = &one,
|
||||
.extra2 = &rwnd_scale_max,
|
||||
},
|
||||
{
|
||||
.procname = "max_autoclose",
|
||||
.data = &sctp_max_autoclose,
|
||||
.maxlen = sizeof(unsigned long),
|
||||
.mode = 0644,
|
||||
.proc_handler = &proc_doulongvec_minmax,
|
||||
.extra1 = &max_autoclose_min,
|
||||
.extra2 = &max_autoclose_max,
|
||||
},
|
||||
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
Reference in New Issue
Block a user