/* Drain the reassembly queue. If we just cleared parted delivery, it is possible that the reassembly queue will contain already reassembled messages. Retrieve any such messages and give them to the user.  */
static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq)
/* Drain the reassembly queue. If we just cleared parted delivery, it is possible that the reassembly queue will contain already reassembled messages. Retrieve any such messages and give them to the user.  */
static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq)
{
	struct sctp_ulpevent *event = NULL;
	struct sk_buff_head temp;
	if (skb_queue_empty(&ulpq->reasm))
		return;
	while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) {
		if ((event) && (event->msg_flags & MSG_EOR)){
			skb_queue_head_init(&temp);
			__skb_queue_tail(&temp, sctp_event2skb(event));
			event = sctp_ulpq_order(ulpq, event);
		}
		if (event)
			sctp_ulpq_tail_event(ulpq, event);
	}
}