diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-10 13:46:28 -0400 |
commit | 2f058256cb64e346f4fb4499ff4e0f1c2791a4b4 (patch) | |
tree | 91e06602f4d3abb6812ea8c9bc9ba4501e14c84e /include/net/sctp | |
parent | 0274aa2506fd2fe89a58dd6cd64d3b3f7b976af8 (diff) | |
parent | 86b3786078d63242d3194ffc58ae8dae1d1bbef3 (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'include/net/sctp')
-rw-r--r-- | include/net/sctp/constants.h | 18 | ||||
-rw-r--r-- | include/net/sctp/sctp.h | 10 | ||||
-rw-r--r-- | include/net/sctp/sm.h | 17 | ||||
-rw-r--r-- | include/net/sctp/structs.h | 54 | ||||
-rw-r--r-- | include/net/sctp/ulpevent.h | 16 | ||||
-rw-r--r-- | include/net/sctp/ulpqueue.h | 11 |
6 files changed, 57 insertions, 69 deletions
diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h index 4868c7f7749d..5999e5684bbf 100644 --- a/include/net/sctp/constants.h +++ b/include/net/sctp/constants.h | |||
@@ -263,23 +263,11 @@ enum { SCTP_MIN_PMTU = 576 }; | |||
263 | enum { SCTP_MAX_DUP_TSNS = 16 }; | 263 | enum { SCTP_MAX_DUP_TSNS = 16 }; |
264 | enum { SCTP_MAX_GABS = 16 }; | 264 | enum { SCTP_MAX_GABS = 16 }; |
265 | 265 | ||
266 | /* Here we define the default timers. */ | 266 | /* Heartbeat interval - 30 secs */ |
267 | #define SCTP_DEFAULT_TIMEOUT_HEARTBEAT (30 * HZ) | ||
267 | 268 | ||
268 | /* cookie timer def = ? seconds */ | 269 | /* Delayed sack timer - 200ms */ |
269 | #define SCTP_DEFAULT_TIMEOUT_T1_COOKIE (3 * HZ) | ||
270 | |||
271 | /* init timer def = 3 seconds */ | ||
272 | #define SCTP_DEFAULT_TIMEOUT_T1_INIT (3 * HZ) | ||
273 | |||
274 | /* shutdown timer def = 300 ms */ | ||
275 | #define SCTP_DEFAULT_TIMEOUT_T2_SHUTDOWN ((300 * HZ) / 1000) | ||
276 | |||
277 | /* 0 seconds + RTO */ | ||
278 | #define SCTP_DEFAULT_TIMEOUT_HEARTBEAT (10 * HZ) | ||
279 | |||
280 | /* recv timer def = 200ms (in usec) */ | ||
281 | #define SCTP_DEFAULT_TIMEOUT_SACK ((200 * HZ) / 1000) | 270 | #define SCTP_DEFAULT_TIMEOUT_SACK ((200 * HZ) / 1000) |
282 | #define SCTP_DEFAULT_TIMEOUT_SACK_MAX ((500 * HZ) / 1000) /* 500 ms */ | ||
283 | 271 | ||
284 | /* RTO.Initial - 3 seconds | 272 | /* RTO.Initial - 3 seconds |
285 | * RTO.Min - 1 second | 273 | * RTO.Min - 1 second |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index ef2738159ab3..e1d5ec1c23c0 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -125,7 +125,8 @@ | |||
125 | */ | 125 | */ |
126 | extern struct sock *sctp_get_ctl_sock(void); | 126 | extern struct sock *sctp_get_ctl_sock(void); |
127 | extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, | 127 | extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, |
128 | sctp_scope_t, int gfp, int flags); | 128 | sctp_scope_t, unsigned int __nocast gfp, |
129 | int flags); | ||
129 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); | 130 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); |
130 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); | 131 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); |
131 | 132 | ||
@@ -166,15 +167,12 @@ void sctp_unhash_established(struct sctp_association *); | |||
166 | void sctp_hash_endpoint(struct sctp_endpoint *); | 167 | void sctp_hash_endpoint(struct sctp_endpoint *); |
167 | void sctp_unhash_endpoint(struct sctp_endpoint *); | 168 | void sctp_unhash_endpoint(struct sctp_endpoint *); |
168 | struct sock *sctp_err_lookup(int family, struct sk_buff *, | 169 | struct sock *sctp_err_lookup(int family, struct sk_buff *, |
169 | struct sctphdr *, struct sctp_endpoint **, | 170 | struct sctphdr *, struct sctp_association **, |
170 | struct sctp_association **, | ||
171 | struct sctp_transport **); | 171 | struct sctp_transport **); |
172 | void sctp_err_finish(struct sock *, struct sctp_endpoint *, | 172 | void sctp_err_finish(struct sock *, struct sctp_association *); |
173 | struct sctp_association *); | ||
174 | void sctp_icmp_frag_needed(struct sock *, struct sctp_association *, | 173 | void sctp_icmp_frag_needed(struct sock *, struct sctp_association *, |
175 | struct sctp_transport *t, __u32 pmtu); | 174 | struct sctp_transport *t, __u32 pmtu); |
176 | void sctp_icmp_proto_unreachable(struct sock *sk, | 175 | void sctp_icmp_proto_unreachable(struct sock *sk, |
177 | struct sctp_endpoint *ep, | ||
178 | struct sctp_association *asoc, | 176 | struct sctp_association *asoc, |
179 | struct sctp_transport *t); | 177 | struct sctp_transport *t); |
180 | 178 | ||
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h index a53e08a45e32..58462164d960 100644 --- a/include/net/sctp/sm.h +++ b/include/net/sctp/sm.h | |||
@@ -131,7 +131,6 @@ sctp_state_fn_t sctp_sf_do_ecne; | |||
131 | sctp_state_fn_t sctp_sf_ootb; | 131 | sctp_state_fn_t sctp_sf_ootb; |
132 | sctp_state_fn_t sctp_sf_pdiscard; | 132 | sctp_state_fn_t sctp_sf_pdiscard; |
133 | sctp_state_fn_t sctp_sf_violation; | 133 | sctp_state_fn_t sctp_sf_violation; |
134 | sctp_state_fn_t sctp_sf_violation_chunklen; | ||
135 | sctp_state_fn_t sctp_sf_discard_chunk; | 134 | sctp_state_fn_t sctp_sf_discard_chunk; |
136 | sctp_state_fn_t sctp_sf_do_5_2_1_siminit; | 135 | sctp_state_fn_t sctp_sf_do_5_2_1_siminit; |
137 | sctp_state_fn_t sctp_sf_do_5_2_2_dupinit; | 136 | sctp_state_fn_t sctp_sf_do_5_2_2_dupinit; |
@@ -182,17 +181,17 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t, | |||
182 | int sctp_chunk_iif(const struct sctp_chunk *); | 181 | int sctp_chunk_iif(const struct sctp_chunk *); |
183 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *, | 182 | struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *, |
184 | struct sctp_chunk *, | 183 | struct sctp_chunk *, |
185 | int gfp); | 184 | unsigned int __nocast gfp); |
186 | __u32 sctp_generate_verification_tag(void); | 185 | __u32 sctp_generate_verification_tag(void); |
187 | void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag); | 186 | void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag); |
188 | 187 | ||
189 | /* Prototypes for chunk-building functions. */ | 188 | /* Prototypes for chunk-building functions. */ |
190 | struct sctp_chunk *sctp_make_init(const struct sctp_association *, | 189 | struct sctp_chunk *sctp_make_init(const struct sctp_association *, |
191 | const struct sctp_bind_addr *, | 190 | const struct sctp_bind_addr *, |
192 | int gfp, int vparam_len); | 191 | unsigned int __nocast gfp, int vparam_len); |
193 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *, | 192 | struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *, |
194 | const struct sctp_chunk *, | 193 | const struct sctp_chunk *, |
195 | const int gfp, | 194 | const unsigned int __nocast gfp, |
196 | const int unkparam_len); | 195 | const int unkparam_len); |
197 | struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *, | 196 | struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *, |
198 | const struct sctp_chunk *); | 197 | const struct sctp_chunk *); |
@@ -259,11 +258,6 @@ struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc, | |||
259 | void sctp_chunk_assign_tsn(struct sctp_chunk *); | 258 | void sctp_chunk_assign_tsn(struct sctp_chunk *); |
260 | void sctp_chunk_assign_ssn(struct sctp_chunk *); | 259 | void sctp_chunk_assign_ssn(struct sctp_chunk *); |
261 | 260 | ||
262 | sctp_disposition_t sctp_stop_t1_and_abort(sctp_cmd_seq_t *commands, | ||
263 | __u16 error, | ||
264 | const struct sctp_association *asoc, | ||
265 | struct sctp_transport *transport); | ||
266 | |||
267 | /* Prototypes for statetable processing. */ | 261 | /* Prototypes for statetable processing. */ |
268 | 262 | ||
269 | int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype, | 263 | int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype, |
@@ -271,7 +265,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype, | |||
271 | struct sctp_endpoint *, | 265 | struct sctp_endpoint *, |
272 | struct sctp_association *asoc, | 266 | struct sctp_association *asoc, |
273 | void *event_arg, | 267 | void *event_arg, |
274 | int gfp); | 268 | unsigned int __nocast gfp); |
275 | 269 | ||
276 | /* 2nd level prototypes */ | 270 | /* 2nd level prototypes */ |
277 | void sctp_generate_t3_rtx_event(unsigned long peer); | 271 | void sctp_generate_t3_rtx_event(unsigned long peer); |
@@ -281,7 +275,8 @@ void sctp_ootb_pkt_free(struct sctp_packet *); | |||
281 | 275 | ||
282 | struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *, | 276 | struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *, |
283 | const struct sctp_association *, | 277 | const struct sctp_association *, |
284 | struct sctp_chunk *, int gfp, int *err, | 278 | struct sctp_chunk *, |
279 | unsigned int __nocast gfp, int *err, | ||
285 | struct sctp_chunk **err_chk_p); | 280 | struct sctp_chunk **err_chk_p); |
286 | int sctp_addip_addr_config(struct sctp_association *, sctp_param_t, | 281 | int sctp_addip_addr_config(struct sctp_association *, sctp_param_t, |
287 | struct sockaddr_storage*, int); | 282 | struct sockaddr_storage*, int); |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index dfad4d3c581c..994009bbe3b4 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -161,6 +161,9 @@ extern struct sctp_globals { | |||
161 | */ | 161 | */ |
162 | int sndbuf_policy; | 162 | int sndbuf_policy; |
163 | 163 | ||
164 | /* Delayed SACK timeout 200ms default*/ | ||
165 | int sack_timeout; | ||
166 | |||
164 | /* HB.interval - 30 seconds */ | 167 | /* HB.interval - 30 seconds */ |
165 | int hb_interval; | 168 | int hb_interval; |
166 | 169 | ||
@@ -217,6 +220,7 @@ extern struct sctp_globals { | |||
217 | #define sctp_sndbuf_policy (sctp_globals.sndbuf_policy) | 220 | #define sctp_sndbuf_policy (sctp_globals.sndbuf_policy) |
218 | #define sctp_max_retrans_path (sctp_globals.max_retrans_path) | 221 | #define sctp_max_retrans_path (sctp_globals.max_retrans_path) |
219 | #define sctp_max_retrans_init (sctp_globals.max_retrans_init) | 222 | #define sctp_max_retrans_init (sctp_globals.max_retrans_init) |
223 | #define sctp_sack_timeout (sctp_globals.sack_timeout) | ||
220 | #define sctp_hb_interval (sctp_globals.hb_interval) | 224 | #define sctp_hb_interval (sctp_globals.hb_interval) |
221 | #define sctp_max_instreams (sctp_globals.max_instreams) | 225 | #define sctp_max_instreams (sctp_globals.max_instreams) |
222 | #define sctp_max_outstreams (sctp_globals.max_outstreams) | 226 | #define sctp_max_outstreams (sctp_globals.max_outstreams) |
@@ -441,7 +445,8 @@ struct sctp_ssnmap { | |||
441 | int malloced; | 445 | int malloced; |
442 | }; | 446 | }; |
443 | 447 | ||
444 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, int gfp); | 448 | struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out, |
449 | unsigned int __nocast gfp); | ||
445 | void sctp_ssnmap_free(struct sctp_ssnmap *map); | 450 | void sctp_ssnmap_free(struct sctp_ssnmap *map); |
446 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); | 451 | void sctp_ssnmap_clear(struct sctp_ssnmap *map); |
447 | 452 | ||
@@ -578,7 +583,6 @@ void sctp_datamsg_track(struct sctp_chunk *); | |||
578 | void sctp_chunk_fail(struct sctp_chunk *, int error); | 583 | void sctp_chunk_fail(struct sctp_chunk *, int error); |
579 | int sctp_chunk_abandoned(struct sctp_chunk *); | 584 | int sctp_chunk_abandoned(struct sctp_chunk *); |
580 | 585 | ||
581 | |||
582 | /* RFC2960 1.4 Key Terms | 586 | /* RFC2960 1.4 Key Terms |
583 | * | 587 | * |
584 | * o Chunk: A unit of information within an SCTP packet, consisting of | 588 | * o Chunk: A unit of information within an SCTP packet, consisting of |
@@ -588,13 +592,8 @@ int sctp_chunk_abandoned(struct sctp_chunk *); | |||
588 | * each chunk as well as a few other header pointers... | 592 | * each chunk as well as a few other header pointers... |
589 | */ | 593 | */ |
590 | struct sctp_chunk { | 594 | struct sctp_chunk { |
591 | /* These first three elements MUST PRECISELY match the first | 595 | struct list_head list; |
592 | * three elements of struct sk_buff. This allows us to reuse | 596 | |
593 | * all the skb_* queue management functions. | ||
594 | */ | ||
595 | struct sctp_chunk *next; | ||
596 | struct sctp_chunk *prev; | ||
597 | struct sk_buff_head *list; | ||
598 | atomic_t refcnt; | 597 | atomic_t refcnt; |
599 | 598 | ||
600 | /* This is our link to the per-transport transmitted list. */ | 599 | /* This is our link to the per-transport transmitted list. */ |
@@ -713,7 +712,7 @@ struct sctp_packet { | |||
713 | __u32 vtag; | 712 | __u32 vtag; |
714 | 713 | ||
715 | /* This contains the payload chunks. */ | 714 | /* This contains the payload chunks. */ |
716 | struct sk_buff_head chunks; | 715 | struct list_head chunk_list; |
717 | 716 | ||
718 | /* This is the overhead of the sctp and ip headers. */ | 717 | /* This is the overhead of the sctp and ip headers. */ |
719 | size_t overhead; | 718 | size_t overhead; |
@@ -947,7 +946,8 @@ struct sctp_transport { | |||
947 | } cacc; | 946 | } cacc; |
948 | }; | 947 | }; |
949 | 948 | ||
950 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, int); | 949 | struct sctp_transport *sctp_transport_new(const union sctp_addr *, |
950 | unsigned int __nocast); | ||
951 | void sctp_transport_set_owner(struct sctp_transport *, | 951 | void sctp_transport_set_owner(struct sctp_transport *, |
952 | struct sctp_association *); | 952 | struct sctp_association *); |
953 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, | 953 | void sctp_transport_route(struct sctp_transport *, union sctp_addr *, |
@@ -970,7 +970,7 @@ struct sctp_inq { | |||
970 | /* This is actually a queue of sctp_chunk each | 970 | /* This is actually a queue of sctp_chunk each |
971 | * containing a partially decoded packet. | 971 | * containing a partially decoded packet. |
972 | */ | 972 | */ |
973 | struct sk_buff_head in; | 973 | struct list_head in_chunk_list; |
974 | /* This is the packet which is currently off the in queue and is | 974 | /* This is the packet which is currently off the in queue and is |
975 | * being worked on through the inbound chunk processing. | 975 | * being worked on through the inbound chunk processing. |
976 | */ | 976 | */ |
@@ -1013,7 +1013,7 @@ struct sctp_outq { | |||
1013 | struct sctp_association *asoc; | 1013 | struct sctp_association *asoc; |
1014 | 1014 | ||
1015 | /* Data pending that has never been transmitted. */ | 1015 | /* Data pending that has never been transmitted. */ |
1016 | struct sk_buff_head out; | 1016 | struct list_head out_chunk_list; |
1017 | 1017 | ||
1018 | unsigned out_qlen; /* Total length of queued data chunks. */ | 1018 | unsigned out_qlen; /* Total length of queued data chunks. */ |
1019 | 1019 | ||
@@ -1021,7 +1021,7 @@ struct sctp_outq { | |||
1021 | unsigned error; | 1021 | unsigned error; |
1022 | 1022 | ||
1023 | /* These are control chunks we want to send. */ | 1023 | /* These are control chunks we want to send. */ |
1024 | struct sk_buff_head control; | 1024 | struct list_head control_chunk_list; |
1025 | 1025 | ||
1026 | /* These are chunks that have been sacked but are above the | 1026 | /* These are chunks that have been sacked but are above the |
1027 | * CTSN, or cumulative tsn ack point. | 1027 | * CTSN, or cumulative tsn ack point. |
@@ -1095,9 +1095,10 @@ void sctp_bind_addr_init(struct sctp_bind_addr *, __u16 port); | |||
1095 | void sctp_bind_addr_free(struct sctp_bind_addr *); | 1095 | void sctp_bind_addr_free(struct sctp_bind_addr *); |
1096 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | 1096 | int sctp_bind_addr_copy(struct sctp_bind_addr *dest, |
1097 | const struct sctp_bind_addr *src, | 1097 | const struct sctp_bind_addr *src, |
1098 | sctp_scope_t scope, int gfp,int flags); | 1098 | sctp_scope_t scope, unsigned int __nocast gfp, |
1099 | int flags); | ||
1099 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, | 1100 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, |
1100 | int gfp); | 1101 | unsigned int __nocast gfp); |
1101 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); | 1102 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); |
1102 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, | 1103 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, |
1103 | struct sctp_sock *); | 1104 | struct sctp_sock *); |
@@ -1106,9 +1107,10 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, | |||
1106 | int addrcnt, | 1107 | int addrcnt, |
1107 | struct sctp_sock *opt); | 1108 | struct sctp_sock *opt); |
1108 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, | 1109 | union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp, |
1109 | int *addrs_len, int gfp); | 1110 | int *addrs_len, |
1111 | unsigned int __nocast gfp); | ||
1110 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, | 1112 | int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len, |
1111 | __u16 port, int gfp); | 1113 | __u16 port, unsigned int __nocast gfp); |
1112 | 1114 | ||
1113 | sctp_scope_t sctp_scope(const union sctp_addr *); | 1115 | sctp_scope_t sctp_scope(const union sctp_addr *); |
1114 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); | 1116 | int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope); |
@@ -1237,7 +1239,7 @@ static inline struct sctp_endpoint *sctp_ep(struct sctp_ep_common *base) | |||
1237 | } | 1239 | } |
1238 | 1240 | ||
1239 | /* These are function signatures for manipulating endpoints. */ | 1241 | /* These are function signatures for manipulating endpoints. */ |
1240 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, int); | 1242 | struct sctp_endpoint *sctp_endpoint_new(struct sock *, unsigned int __nocast); |
1241 | void sctp_endpoint_free(struct sctp_endpoint *); | 1243 | void sctp_endpoint_free(struct sctp_endpoint *); |
1242 | void sctp_endpoint_put(struct sctp_endpoint *); | 1244 | void sctp_endpoint_put(struct sctp_endpoint *); |
1243 | void sctp_endpoint_hold(struct sctp_endpoint *); | 1245 | void sctp_endpoint_hold(struct sctp_endpoint *); |
@@ -1258,7 +1260,7 @@ int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t, | |||
1258 | struct sctp_chunk **err_chunk); | 1260 | struct sctp_chunk **err_chunk); |
1259 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, | 1261 | int sctp_process_init(struct sctp_association *, sctp_cid_t cid, |
1260 | const union sctp_addr *peer, | 1262 | const union sctp_addr *peer, |
1261 | sctp_init_chunk_t *init, int gfp); | 1263 | sctp_init_chunk_t *init, unsigned int __nocast gfp); |
1262 | __u32 sctp_generate_tag(const struct sctp_endpoint *); | 1264 | __u32 sctp_generate_tag(const struct sctp_endpoint *); |
1263 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); | 1265 | __u32 sctp_generate_tsn(const struct sctp_endpoint *); |
1264 | 1266 | ||
@@ -1668,7 +1670,7 @@ struct sctp_association { | |||
1668 | * which already resides in sctp_outq. Please move this | 1670 | * which already resides in sctp_outq. Please move this |
1669 | * queue and its supporting logic down there. --piggy] | 1671 | * queue and its supporting logic down there. --piggy] |
1670 | */ | 1672 | */ |
1671 | struct sk_buff_head addip_chunks; | 1673 | struct list_head addip_chunk_list; |
1672 | 1674 | ||
1673 | /* ADDIP Section 4.1 ASCONF Chunk Procedures | 1675 | /* ADDIP Section 4.1 ASCONF Chunk Procedures |
1674 | * | 1676 | * |
@@ -1721,7 +1723,7 @@ static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base) | |||
1721 | 1723 | ||
1722 | struct sctp_association * | 1724 | struct sctp_association * |
1723 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, | 1725 | sctp_association_new(const struct sctp_endpoint *, const struct sock *, |
1724 | sctp_scope_t scope, int gfp); | 1726 | sctp_scope_t scope, unsigned int __nocast gfp); |
1725 | void sctp_association_free(struct sctp_association *); | 1727 | void sctp_association_free(struct sctp_association *); |
1726 | void sctp_association_put(struct sctp_association *); | 1728 | void sctp_association_put(struct sctp_association *); |
1727 | void sctp_association_hold(struct sctp_association *); | 1729 | void sctp_association_hold(struct sctp_association *); |
@@ -1737,7 +1739,7 @@ int sctp_assoc_lookup_laddr(struct sctp_association *asoc, | |||
1737 | const union sctp_addr *laddr); | 1739 | const union sctp_addr *laddr); |
1738 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, | 1740 | struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *, |
1739 | const union sctp_addr *address, | 1741 | const union sctp_addr *address, |
1740 | const int gfp, | 1742 | const unsigned int __nocast gfp, |
1741 | const int peer_state); | 1743 | const int peer_state); |
1742 | void sctp_assoc_del_peer(struct sctp_association *asoc, | 1744 | void sctp_assoc_del_peer(struct sctp_association *asoc, |
1743 | const union sctp_addr *addr); | 1745 | const union sctp_addr *addr); |
@@ -1761,9 +1763,11 @@ void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned); | |||
1761 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); | 1763 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned); |
1762 | void sctp_assoc_set_primary(struct sctp_association *, | 1764 | void sctp_assoc_set_primary(struct sctp_association *, |
1763 | struct sctp_transport *); | 1765 | struct sctp_transport *); |
1764 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, int); | 1766 | int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *, |
1767 | unsigned int __nocast); | ||
1765 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, | 1768 | int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *, |
1766 | struct sctp_cookie*, int gfp); | 1769 | struct sctp_cookie*, |
1770 | unsigned int __nocast gfp); | ||
1767 | 1771 | ||
1768 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, | 1772 | int sctp_cmp_addr_exact(const union sctp_addr *ss1, |
1769 | const union sctp_addr *ss2); | 1773 | const union sctp_addr *ss2); |
diff --git a/include/net/sctp/ulpevent.h b/include/net/sctp/ulpevent.h index 1019d83a580a..90fe4bf6754f 100644 --- a/include/net/sctp/ulpevent.h +++ b/include/net/sctp/ulpevent.h | |||
@@ -88,7 +88,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_assoc_change( | |||
88 | __u16 error, | 88 | __u16 error, |
89 | __u16 outbound, | 89 | __u16 outbound, |
90 | __u16 inbound, | 90 | __u16 inbound, |
91 | int gfp); | 91 | unsigned int __nocast gfp); |
92 | 92 | ||
93 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( | 93 | struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( |
94 | const struct sctp_association *asoc, | 94 | const struct sctp_association *asoc, |
@@ -96,35 +96,35 @@ struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change( | |||
96 | int flags, | 96 | int flags, |
97 | int state, | 97 | int state, |
98 | int error, | 98 | int error, |
99 | int gfp); | 99 | unsigned int __nocast gfp); |
100 | 100 | ||
101 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( | 101 | struct sctp_ulpevent *sctp_ulpevent_make_remote_error( |
102 | const struct sctp_association *asoc, | 102 | const struct sctp_association *asoc, |
103 | struct sctp_chunk *chunk, | 103 | struct sctp_chunk *chunk, |
104 | __u16 flags, | 104 | __u16 flags, |
105 | int gfp); | 105 | unsigned int __nocast gfp); |
106 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( | 106 | struct sctp_ulpevent *sctp_ulpevent_make_send_failed( |
107 | const struct sctp_association *asoc, | 107 | const struct sctp_association *asoc, |
108 | struct sctp_chunk *chunk, | 108 | struct sctp_chunk *chunk, |
109 | __u16 flags, | 109 | __u16 flags, |
110 | __u32 error, | 110 | __u32 error, |
111 | int gfp); | 111 | unsigned int __nocast gfp); |
112 | 112 | ||
113 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( | 113 | struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event( |
114 | const struct sctp_association *asoc, | 114 | const struct sctp_association *asoc, |
115 | __u16 flags, | 115 | __u16 flags, |
116 | int gfp); | 116 | unsigned int __nocast gfp); |
117 | 117 | ||
118 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( | 118 | struct sctp_ulpevent *sctp_ulpevent_make_pdapi( |
119 | const struct sctp_association *asoc, | 119 | const struct sctp_association *asoc, |
120 | __u32 indication, int gfp); | 120 | __u32 indication, unsigned int __nocast gfp); |
121 | 121 | ||
122 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( | 122 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( |
123 | const struct sctp_association *asoc, int gfp); | 123 | const struct sctp_association *asoc, unsigned int __nocast gfp); |
124 | 124 | ||
125 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, | 125 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, |
126 | struct sctp_chunk *chunk, | 126 | struct sctp_chunk *chunk, |
127 | int gfp); | 127 | unsigned int __nocast gfp); |
128 | 128 | ||
129 | void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event, | 129 | void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event, |
130 | struct msghdr *); | 130 | struct msghdr *); |
diff --git a/include/net/sctp/ulpqueue.h b/include/net/sctp/ulpqueue.h index 961736d29d21..1a60c6d943c1 100644 --- a/include/net/sctp/ulpqueue.h +++ b/include/net/sctp/ulpqueue.h | |||
@@ -62,19 +62,22 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *, | |||
62 | void sctp_ulpq_free(struct sctp_ulpq *); | 62 | void sctp_ulpq_free(struct sctp_ulpq *); |
63 | 63 | ||
64 | /* Add a new DATA chunk for processing. */ | 64 | /* Add a new DATA chunk for processing. */ |
65 | int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, int); | 65 | int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, |
66 | unsigned int __nocast); | ||
66 | 67 | ||
67 | /* Add a new event for propagation to the ULP. */ | 68 | /* Add a new event for propagation to the ULP. */ |
68 | int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev); | 69 | int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev); |
69 | 70 | ||
70 | /* Renege previously received chunks. */ | 71 | /* Renege previously received chunks. */ |
71 | void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, int); | 72 | void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, |
73 | unsigned int __nocast); | ||
72 | 74 | ||
73 | /* Perform partial delivery. */ | 75 | /* Perform partial delivery. */ |
74 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, int); | 76 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, |
77 | unsigned int __nocast); | ||
75 | 78 | ||
76 | /* Abort the partial delivery. */ | 79 | /* Abort the partial delivery. */ |
77 | void sctp_ulpq_abort_pd(struct sctp_ulpq *, int); | 80 | void sctp_ulpq_abort_pd(struct sctp_ulpq *, unsigned int __nocast); |
78 | 81 | ||
79 | /* Clear the partial data delivery condition on this socket. */ | 82 | /* Clear the partial data delivery condition on this socket. */ |
80 | int sctp_clear_pd(struct sock *sk); | 83 | int sctp_clear_pd(struct sock *sk); |