summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2006-03-21 02:34:53 +0100
committerDavid S. Miller <davem@davemloft.net>2006-03-21 02:34:53 +0100
commit9833d6da00c95e8a471411fb079da6b25787b05e (patch)
tree0d76b97beb3587723ad318fe0713193ebccb9374
parent[DCCP] ackvec: Delete all the ack vector records in dccp_ackvec_free (diff)
downloadlinux-9833d6da00c95e8a471411fb079da6b25787b05e.tar.xz
linux-9833d6da00c95e8a471411fb079da6b25787b05e.zip
[DCCP]: Don't alloc ack vector for the control sock
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dccp/ipv4.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index f8df565e89c8..2ab6f0e6cd62 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -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,