On 06/27/2012 06:24 AM, Neil Horman wrote:
On Tue, Jun 26, 2012 at 09:05:04PM -0700, David Miller wrote:
From: Neil Horman<nhorman@xxxxxxxxxxxxx>
Date: Tue, 26 Jun 2012 16:31:44 -0400
@@ -240,15 +240,20 @@ static sctp_xmit_t sctp_packet_bundle_sack(struct sctp_packet *pkt,
*/
if (sctp_chunk_is_data(chunk)&& !pkt->has_sack&&
!pkt->has_cookie_echo) {
- struct sctp_association *asoc;
struct timer_list *timer;
- asoc = pkt->transport->asoc;
+ struct sctp_association *asoc = pkt->transport->asoc;
+ struct sctp_transport *trans;
+
timer =&asoc->timers[SCTP_EVENT_TIMEOUT_SACK];
/* If the SACK timer is running, we have a pending SACK */
if (timer_pending(timer)) {
struct sctp_chunk *sack;
asoc->a_rwnd = asoc->rwnd;
+
+ if (chunk->transport&& !chunk->transport->moved_ctsn)
+ return retval;
+
sack = sctp_make_sack(asoc);
if (sack) {
retval = sctp_packet_append_chunk(pkt, sack);
The new local variable 'trans' seems to be unused.
Crap, thank you Dave, that was a holdover from an initial pass I had made in
writing this. I'll repost with that removed once Vald has a chance to look this
over
Neil
Also, may want to move a_rwnd adjustment to after the new if clause. No
sense adjusting it if we are just going to bail.
-vlad
--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html