aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/sctp.h6
-rw-r--r--net/sctp/outqueue.c10
2 files changed, 8 insertions, 8 deletions
diff --git a/include/linux/sctp.h b/include/linux/sctp.h
index 8faf74eff63d..8df6ac53f05b 100644
--- a/include/linux/sctp.h
+++ b/include/linux/sctp.h
@@ -368,17 +368,17 @@ struct sctp_gap_ack_block {
368 __be16 end; 368 __be16 end;
369}; 369};
370 370
371typedef union { 371union sctp_sack_variable {
372 struct sctp_gap_ack_block gab; 372 struct sctp_gap_ack_block gab;
373 __be32 dup; 373 __be32 dup;
374} sctp_sack_variable_t; 374};
375 375
376typedef struct sctp_sackhdr { 376typedef struct sctp_sackhdr {
377 __be32 cum_tsn_ack; 377 __be32 cum_tsn_ack;
378 __be32 a_rwnd; 378 __be32 a_rwnd;
379 __be16 num_gap_ack_blocks; 379 __be16 num_gap_ack_blocks;
380 __be16 num_dup_tsns; 380 __be16 num_dup_tsns;
381 sctp_sack_variable_t variable[0]; 381 union sctp_sack_variable variable[0];
382} sctp_sackhdr_t; 382} sctp_sackhdr_t;
383 383
384typedef struct sctp_sack_chunk { 384typedef struct sctp_sack_chunk {
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index e8762702a313..d2a8adfd4a6f 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -1197,7 +1197,7 @@ sctp_flush_out:
1197static void sctp_sack_update_unack_data(struct sctp_association *assoc, 1197static void sctp_sack_update_unack_data(struct sctp_association *assoc,
1198 struct sctp_sackhdr *sack) 1198 struct sctp_sackhdr *sack)
1199{ 1199{
1200 sctp_sack_variable_t *frags; 1200 union sctp_sack_variable *frags;
1201 __u16 unack_data; 1201 __u16 unack_data;
1202 int i; 1202 int i;
1203 1203
@@ -1224,7 +1224,7 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
1224 struct sctp_transport *transport; 1224 struct sctp_transport *transport;
1225 struct sctp_chunk *tchunk = NULL; 1225 struct sctp_chunk *tchunk = NULL;
1226 struct list_head *lchunk, *transport_list, *temp; 1226 struct list_head *lchunk, *transport_list, *temp;
1227 sctp_sack_variable_t *frags = sack->variable; 1227 union sctp_sack_variable *frags = sack->variable;
1228 __u32 sack_ctsn, ctsn, tsn; 1228 __u32 sack_ctsn, ctsn, tsn;
1229 __u32 highest_tsn, highest_new_tsn; 1229 __u32 highest_tsn, highest_new_tsn;
1230 __u32 sack_a_rwnd; 1230 __u32 sack_a_rwnd;
@@ -1736,10 +1736,10 @@ static void sctp_mark_missing(struct sctp_outq *q,
1736/* Is the given TSN acked by this packet? */ 1736/* Is the given TSN acked by this packet? */
1737static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn) 1737static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn)
1738{ 1738{
1739 int i;
1740 sctp_sack_variable_t *frags;
1741 __u16 tsn_offset, blocks;
1742 __u32 ctsn = ntohl(sack->cum_tsn_ack); 1739 __u32 ctsn = ntohl(sack->cum_tsn_ack);
1740 union sctp_sack_variable *frags;
1741 __u16 tsn_offset, blocks;
1742 int i;
1743 1743
1744 if (TSN_lte(tsn, ctsn)) 1744 if (TSN_lte(tsn, ctsn))
1745 goto pass; 1745 goto pass;