[DCCP]: Don't alloc ack vector for the control sock
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 21 Mar 2006 01:34:53 +0000 (17:34 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Mar 2006 01:34:53 +0000 (17:34 -0800)
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/ipv4.c

index f8df565e89c82d4325598d0aa45c33096db13fe0..2ab6f0e6cd623d4d95f83ef56e15cd55ad888267 100644 (file)
@@ -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,