mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
sctp: delete the nested flexible array variable
This patch deletes the flexible-array variable[] from the structure sctp_sackhdr and sctp_errhdr to avoid some sparse warnings: # make C=2 CF="-Wflexible-array-nested" M=./net/sctp/ net/sctp/sm_statefuns.c: note: in included file (through include/net/sctp/structs.h, include/net/sctp/sctp.h): ./include/linux/sctp.h:451:28: warning: nested flexible array ./include/linux/sctp.h:393:29: warning: nested flexible array Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
73175a0429
commit
9789c1c661
@@ -385,7 +385,7 @@ struct sctp_sackhdr {
|
|||||||
__be32 a_rwnd;
|
__be32 a_rwnd;
|
||||||
__be16 num_gap_ack_blocks;
|
__be16 num_gap_ack_blocks;
|
||||||
__be16 num_dup_tsns;
|
__be16 num_dup_tsns;
|
||||||
union sctp_sack_variable variable[];
|
/* union sctp_sack_variable variable[]; */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sctp_sack_chunk {
|
struct sctp_sack_chunk {
|
||||||
@@ -443,7 +443,7 @@ struct sctp_shutdown_chunk {
|
|||||||
struct sctp_errhdr {
|
struct sctp_errhdr {
|
||||||
__be16 cause;
|
__be16 cause;
|
||||||
__be16 length;
|
__be16 length;
|
||||||
__u8 variable[];
|
/* __u8 variable[]; */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sctp_operr_chunk {
|
struct sctp_operr_chunk {
|
||||||
|
@@ -1231,7 +1231,7 @@ static void sctp_sack_update_unack_data(struct sctp_association *assoc,
|
|||||||
|
|
||||||
unack_data = assoc->next_tsn - assoc->ctsn_ack_point - 1;
|
unack_data = assoc->next_tsn - assoc->ctsn_ack_point - 1;
|
||||||
|
|
||||||
frags = sack->variable;
|
frags = (union sctp_sack_variable *)(sack + 1);
|
||||||
for (i = 0; i < ntohs(sack->num_gap_ack_blocks); i++) {
|
for (i = 0; i < ntohs(sack->num_gap_ack_blocks); i++) {
|
||||||
unack_data -= ((ntohs(frags[i].gab.end) -
|
unack_data -= ((ntohs(frags[i].gab.end) -
|
||||||
ntohs(frags[i].gab.start) + 1));
|
ntohs(frags[i].gab.start) + 1));
|
||||||
@@ -1252,7 +1252,6 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
|
|||||||
struct sctp_transport *transport;
|
struct sctp_transport *transport;
|
||||||
struct sctp_chunk *tchunk = NULL;
|
struct sctp_chunk *tchunk = NULL;
|
||||||
struct list_head *lchunk, *transport_list, *temp;
|
struct list_head *lchunk, *transport_list, *temp;
|
||||||
union sctp_sack_variable *frags = sack->variable;
|
|
||||||
__u32 sack_ctsn, ctsn, tsn;
|
__u32 sack_ctsn, ctsn, tsn;
|
||||||
__u32 highest_tsn, highest_new_tsn;
|
__u32 highest_tsn, highest_new_tsn;
|
||||||
__u32 sack_a_rwnd;
|
__u32 sack_a_rwnd;
|
||||||
@@ -1313,8 +1312,12 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
|
|||||||
|
|
||||||
/* Get the highest TSN in the sack. */
|
/* Get the highest TSN in the sack. */
|
||||||
highest_tsn = sack_ctsn;
|
highest_tsn = sack_ctsn;
|
||||||
if (gap_ack_blocks)
|
if (gap_ack_blocks) {
|
||||||
|
union sctp_sack_variable *frags =
|
||||||
|
(union sctp_sack_variable *)(sack + 1);
|
||||||
|
|
||||||
highest_tsn += ntohs(frags[gap_ack_blocks - 1].gab.end);
|
highest_tsn += ntohs(frags[gap_ack_blocks - 1].gab.end);
|
||||||
|
}
|
||||||
|
|
||||||
if (TSN_lt(asoc->highest_sacked, highest_tsn))
|
if (TSN_lt(asoc->highest_sacked, highest_tsn))
|
||||||
asoc->highest_sacked = highest_tsn;
|
asoc->highest_sacked = highest_tsn;
|
||||||
@@ -1789,7 +1792,7 @@ static int sctp_acked(struct sctp_sackhdr *sack, __u32 tsn)
|
|||||||
* Block are assumed to have been received correctly.
|
* Block are assumed to have been received correctly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
frags = sack->variable;
|
frags = (union sctp_sack_variable *)(sack + 1);
|
||||||
blocks = ntohs(sack->num_gap_ack_blocks);
|
blocks = ntohs(sack->num_gap_ack_blocks);
|
||||||
tsn_offset = tsn - ctsn;
|
tsn_offset = tsn - ctsn;
|
||||||
for (i = 0; i < blocks; ++i) {
|
for (i = 0; i < blocks; ++i) {
|
||||||
|
@@ -984,8 +984,7 @@ static void sctp_cmd_process_operr(struct sctp_cmd_seq *cmds,
|
|||||||
{
|
{
|
||||||
struct sctp_chunkhdr *unk_chunk_hdr;
|
struct sctp_chunkhdr *unk_chunk_hdr;
|
||||||
|
|
||||||
unk_chunk_hdr = (struct sctp_chunkhdr *)
|
unk_chunk_hdr = (struct sctp_chunkhdr *)(err_hdr + 1);
|
||||||
err_hdr->variable;
|
|
||||||
switch (unk_chunk_hdr->type) {
|
switch (unk_chunk_hdr->type) {
|
||||||
/* ADDIP 4.1 A9) If the peer responds to an ASCONF with
|
/* ADDIP 4.1 A9) If the peer responds to an ASCONF with
|
||||||
* an ERROR chunk reporting that it did not recognized
|
* an ERROR chunk reporting that it did not recognized
|
||||||
|
@@ -1337,7 +1337,7 @@ static int sctp_sf_send_restart_abort(struct net *net, union sctp_addr *ssa,
|
|||||||
* throughout the code today.
|
* throughout the code today.
|
||||||
*/
|
*/
|
||||||
errhdr = (struct sctp_errhdr *)buffer;
|
errhdr = (struct sctp_errhdr *)buffer;
|
||||||
addrparm = (union sctp_addr_param *)errhdr->variable;
|
addrparm = (union sctp_addr_param *)(errhdr + 1);
|
||||||
|
|
||||||
/* Copy into a parm format. */
|
/* Copy into a parm format. */
|
||||||
len = af->to_addr_param(ssa, addrparm);
|
len = af->to_addr_param(ssa, addrparm);
|
||||||
|
Reference in New Issue
Block a user