|
@@ -1041,12 +1041,6 @@ int dccp_v4_init_sock(struct sock *sk)
|
|
|
dccp_options_init(&dp->dccps_options);
|
|
|
do_gettimeofday(&dp->dccps_epoch);
|
|
|
|
|
|
- if (dp->dccps_options.dccpo_send_ack_vector) {
|
|
|
- dp->dccps_hc_rx_ackvec = dccp_ackvec_alloc(GFP_KERNEL);
|
|
|
- if (dp->dccps_hc_rx_ackvec == NULL)
|
|
|
- return -ENOMEM;
|
|
|
- }
|
|
|
-
|
|
|
/*
|
|
|
* FIXME: We're hardcoding the CCID, and doing this at this point makes
|
|
|
* the listening (master) sock get CCID control blocks, which is not
|
|
@@ -1055,6 +1049,11 @@ int dccp_v4_init_sock(struct sock *sk)
|
|
|
* setsockopt(CCIDs-I-want/accept). -acme
|
|
|
*/
|
|
|
if (likely(!dccp_ctl_socket_init)) {
|
|
|
+ if (dp->dccps_options.dccpo_send_ack_vector) {
|
|
|
+ dp->dccps_hc_rx_ackvec = dccp_ackvec_alloc(GFP_KERNEL);
|
|
|
+ if (dp->dccps_hc_rx_ackvec == NULL)
|
|
|
+ return -ENOMEM;
|
|
|
+ }
|
|
|
dp->dccps_hc_rx_ccid = ccid_init(dp->dccps_options.dccpo_rx_ccid,
|
|
|
sk);
|
|
|
dp->dccps_hc_tx_ccid = ccid_init(dp->dccps_options.dccpo_tx_ccid,
|