| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* SCTP kernel implementation |
|---|
| 2 | 3 | * (C) Copyright Red Hat Inc. 2017 |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * This file is part of the SCTP kernel implementation |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * These functions manipulate sctp stream queue/scheduling. |
|---|
| 7 | | - * |
|---|
| 8 | | - * This SCTP implementation is free software; |
|---|
| 9 | | - * you can redistribute it and/or modify it under the terms of |
|---|
| 10 | | - * the GNU General Public License as published by |
|---|
| 11 | | - * the Free Software Foundation; either version 2, or (at your option) |
|---|
| 12 | | - * any later version. |
|---|
| 13 | | - * |
|---|
| 14 | | - * This SCTP implementation is distributed in the hope that it |
|---|
| 15 | | - * will be useful, but WITHOUT ANY WARRANTY; without even the implied |
|---|
| 16 | | - * ************************ |
|---|
| 17 | | - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|---|
| 18 | | - * See the GNU General Public License for more details. |
|---|
| 19 | | - * |
|---|
| 20 | | - * You should have received a copy of the GNU General Public License |
|---|
| 21 | | - * along with GNU CC; see the file COPYING. If not, see |
|---|
| 22 | | - * <http://www.gnu.org/licenses/>. |
|---|
| 23 | 8 | * |
|---|
| 24 | 9 | * Please send any bug reports or fixes you make to the |
|---|
| 25 | 10 | * email addresched(es): |
|---|
| .. | .. |
|---|
| 59 | 44 | gfp_t gfp) |
|---|
| 60 | 45 | { |
|---|
| 61 | 46 | return 0; |
|---|
| 47 | +} |
|---|
| 48 | + |
|---|
| 49 | +static void sctp_sched_fcfs_free_sid(struct sctp_stream *stream, __u16 sid) |
|---|
| 50 | +{ |
|---|
| 62 | 51 | } |
|---|
| 63 | 52 | |
|---|
| 64 | 53 | static void sctp_sched_fcfs_free(struct sctp_stream *stream) |
|---|
| .. | .. |
|---|
| 111 | 100 | .get = sctp_sched_fcfs_get, |
|---|
| 112 | 101 | .init = sctp_sched_fcfs_init, |
|---|
| 113 | 102 | .init_sid = sctp_sched_fcfs_init_sid, |
|---|
| 103 | + .free_sid = sctp_sched_fcfs_free_sid, |
|---|
| 114 | 104 | .free = sctp_sched_fcfs_free, |
|---|
| 115 | 105 | .enqueue = sctp_sched_fcfs_enqueue, |
|---|
| 116 | 106 | .dequeue = sctp_sched_fcfs_dequeue, |
|---|
| .. | .. |
|---|
| 178 | 168 | if (!SCTP_SO(&asoc->stream, i)->ext) |
|---|
| 179 | 169 | continue; |
|---|
| 180 | 170 | |
|---|
| 181 | | - ret = n->init_sid(&asoc->stream, i, GFP_KERNEL); |
|---|
| 171 | + ret = n->init_sid(&asoc->stream, i, GFP_ATOMIC); |
|---|
| 182 | 172 | if (ret) |
|---|
| 183 | 173 | goto err; |
|---|
| 184 | 174 | } |
|---|
| .. | .. |
|---|
| 243 | 233 | void sctp_sched_dequeue_done(struct sctp_outq *q, struct sctp_chunk *ch) |
|---|
| 244 | 234 | { |
|---|
| 245 | 235 | if (!list_is_last(&ch->frag_list, &ch->msg->chunks) && |
|---|
| 246 | | - !q->asoc->intl_enable) { |
|---|
| 236 | + !q->asoc->peer.intl_capable) { |
|---|
| 247 | 237 | struct sctp_stream_out *sout; |
|---|
| 248 | 238 | __u16 sid; |
|---|
| 249 | 239 | |
|---|