diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/sm_sideeffect.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 694f7491731d..8674d4919556 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c | |||
@@ -1533,7 +1533,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, | |||
1533 | case SCTP_CMD_PROCESS_CTSN: | 1533 | case SCTP_CMD_PROCESS_CTSN: |
1534 | /* Dummy up a SACK for processing. */ | 1534 | /* Dummy up a SACK for processing. */ |
1535 | sackh.cum_tsn_ack = cmd->obj.be32; | 1535 | sackh.cum_tsn_ack = cmd->obj.be32; |
1536 | sackh.a_rwnd = 0; | 1536 | sackh.a_rwnd = asoc->peer.rwnd + |
1537 | asoc->outqueue.outstanding_bytes; | ||
1537 | sackh.num_gap_ack_blocks = 0; | 1538 | sackh.num_gap_ack_blocks = 0; |
1538 | sackh.num_dup_tsns = 0; | 1539 | sackh.num_dup_tsns = 0; |
1539 | sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, | 1540 | sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK, |
@@ -1632,9 +1633,9 @@ out: | |||
1632 | */ | 1633 | */ |
1633 | if (asoc && SCTP_EVENT_T_CHUNK == event_type && chunk) { | 1634 | if (asoc && SCTP_EVENT_T_CHUNK == event_type && chunk) { |
1634 | if (chunk->end_of_packet || chunk->singleton) | 1635 | if (chunk->end_of_packet || chunk->singleton) |
1635 | sctp_outq_uncork(&asoc->outqueue); | 1636 | error = sctp_outq_uncork(&asoc->outqueue); |
1636 | } else if (local_cork) | 1637 | } else if (local_cork) |
1637 | sctp_outq_uncork(&asoc->outqueue); | 1638 | error = sctp_outq_uncork(&asoc->outqueue); |
1638 | return error; | 1639 | return error; |
1639 | nomem: | 1640 | nomem: |
1640 | error = -ENOMEM; | 1641 | error = -ENOMEM; |