[DCCP] feat: Pass dccp_minisock ptr where only the minisock is used

This is in preparation for having a dccp_minisock embedded into
dccp_request_sock so that feature negotiation can be done prior to
creating the full blown dccp_sock.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/dccp/proto.c b/net/dccp/proto.c
index ede9690..d4b293e 100644
--- a/net/dccp/proto.c
+++ b/net/dccp/proto.c
@@ -180,7 +180,7 @@
 	 * setsockopt(CCIDs-I-want/accept). -acme
 	 */
 	if (likely(ctl_sock_initialized)) {
-		int rc = dccp_feat_init(sk);
+		int rc = dccp_feat_init(dmsk);
 
 		if (rc)
 			return rc;
@@ -229,6 +229,7 @@
 int dccp_destroy_sock(struct sock *sk)
 {
 	struct dccp_sock *dp = dccp_sk(sk);
+	struct dccp_minisock *dmsk = dccp_msk(sk);
 
 	/*
 	 * DCCP doesn't use sk_write_queue, just sk_send_head
@@ -246,7 +247,7 @@
 	kfree(dp->dccps_service_list);
 	dp->dccps_service_list = NULL;
 
-	if (dccp_msk(sk)->dccpms_send_ack_vector) {
+	if (dmsk->dccpms_send_ack_vector) {
 		dccp_ackvec_free(dp->dccps_hc_rx_ackvec);
 		dp->dccps_hc_rx_ackvec = NULL;
 	}
@@ -255,7 +256,7 @@
 	dp->dccps_hc_rx_ccid = dp->dccps_hc_tx_ccid = NULL;
 
 	/* clean up feature negotiation state */
-	dccp_feat_clean(sk);
+	dccp_feat_clean(dmsk);
 
 	return 0;
 }
@@ -441,8 +442,8 @@
 		goto out_free_val;
 	}
 
-	rc = dccp_feat_change(sk, type, opt.dccpsf_feat, val, opt.dccpsf_len,
-			      GFP_KERNEL);
+	rc = dccp_feat_change(dccp_msk(sk), type, opt.dccpsf_feat,
+			      val, opt.dccpsf_len, GFP_KERNEL);
 	if (rc)
 		goto out_free_val;