sctp: Use helper for sctp_ulpq_tail_event() when hooked up to ->enqueue_event
authorDavid Miller <davem@davemloft.net>
Thu, 11 Apr 2019 22:02:01 +0000 (15:02 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 12 Apr 2019 04:33:31 +0000 (21:33 -0700)
This way we can make sure events sent this way to
sctp_ulpq_tail_event() are on a list as well.  Now all such code paths
are fully covered.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/stream_interleave.c

index 102c6fefe38c93be2760ca7df0adfe62bead1313..a6bc42121e35c996c92c7f7dc97be7407cbccdbb 100644 (file)
@@ -1298,6 +1298,15 @@ static void sctp_handle_iftsn(struct sctp_ulpq *ulpq, struct sctp_chunk *chunk)
                               ntohl(skip->mid), skip->flags);
 }
 
+static int do_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event)
+{
+       struct sk_buff_head temp;
+
+       skb_queue_head_init(&temp);
+       __skb_queue_tail(&temp, sctp_event2skb(event));
+       return sctp_ulpq_tail_event(ulpq, event);
+}
+
 static struct sctp_stream_interleave sctp_stream_interleave_0 = {
        .data_chunk_len         = sizeof(struct sctp_data_chunk),
        .ftsn_chunk_len         = sizeof(struct sctp_fwdtsn_chunk),
@@ -1306,7 +1315,7 @@ static struct sctp_stream_interleave sctp_stream_interleave_0 = {
        .assign_number          = sctp_chunk_assign_ssn,
        .validate_data          = sctp_validate_data,
        .ulpevent_data          = sctp_ulpq_tail_data,
-       .enqueue_event          = sctp_ulpq_tail_event,
+       .enqueue_event          = do_ulpq_tail_event,
        .renege_events          = sctp_ulpq_renege,
        .start_pd               = sctp_ulpq_partial_delivery,
        .abort_pd               = sctp_ulpq_abort_pd,