Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-3945.c net/mac80211/mlme.c
This commit is contained in:
@@ -5893,12 +5893,6 @@ static int sctp_eat_data(const struct sctp_association *asoc,
|
||||
return SCTP_IERROR_NO_DATA;
|
||||
}
|
||||
|
||||
/* If definately accepting the DATA chunk, record its TSN, otherwise
|
||||
* wait for renege processing.
|
||||
*/
|
||||
if (SCTP_CMD_CHUNK_ULP == deliver)
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_TSN, SCTP_U32(tsn));
|
||||
|
||||
chunk->data_accepted = 1;
|
||||
|
||||
/* Note: Some chunks may get overcounted (if we drop) or overcounted
|
||||
@@ -5918,6 +5912,9 @@ static int sctp_eat_data(const struct sctp_association *asoc,
|
||||
* and discard the DATA chunk.
|
||||
*/
|
||||
if (ntohs(data_hdr->stream) >= asoc->c.sinit_max_instreams) {
|
||||
/* Mark tsn as received even though we drop it */
|
||||
sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_TSN, SCTP_U32(tsn));
|
||||
|
||||
err = sctp_make_op_error(asoc, chunk, SCTP_ERROR_INV_STRM,
|
||||
&data_hdr->stream,
|
||||
sizeof(data_hdr->stream));
|
||||
|
@@ -710,6 +710,11 @@ struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
|
||||
if (!skb)
|
||||
goto fail;
|
||||
|
||||
/* Now that all memory allocations for this chunk succeeded, we
|
||||
* can mark it as received so the tsn_map is updated correctly.
|
||||
*/
|
||||
sctp_tsnmap_mark(&asoc->peer.tsn_map, ntohl(chunk->subh.data_hdr->tsn));
|
||||
|
||||
/* First calculate the padding, so we don't inadvertently
|
||||
* pass up the wrong length to the user.
|
||||
*
|
||||
|
Reference in New Issue
Block a user