]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/dccp/feat.c
Remove obsolete #include <linux/config.h>
[karo-tx-linux.git] / net / dccp / feat.c
index b09064c4643de3638336cafbc1cce203c0368df4..a1b0682ee77c7f9af2b72dae2afb38f4decd9f97 100644 (file)
@@ -10,7 +10,6 @@
  *      2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 
 #include "dccp.h"
 
 #define DCCP_FEAT_SP_NOAGREE (-123)
 
-int dccp_feat_change(struct sock *sk, u8 type, u8 feature, u8 *val, u8 len,
-                    gfp_t gfp)
+int dccp_feat_change(struct dccp_minisock *dmsk, u8 type, u8 feature,
+                    u8 *val, u8 len, gfp_t gfp)
 {
-       struct dccp_minisock *dmsk = dccp_msk(sk);
        struct dccp_opt_pend *opt;
 
        dccp_pr_debug("feat change type=%d feat=%d\n", type, feature);
@@ -205,7 +203,7 @@ static int dccp_feat_reconcile(struct sock *sk, struct dccp_opt_pend *opt,
        if (rc) {
                kfree(opt->dccpop_sc->dccpoc_val);
                kfree(opt->dccpop_sc);
-               opt->dccpop_sc = 0;
+               opt->dccpop_sc = NULL;
                return rc;
        }
 
@@ -307,9 +305,9 @@ static int dccp_feat_nn(struct sock *sk, u8 type, u8 feature, u8 *val, u8 len)
        return 0;
 }
 
-static void dccp_feat_empty_confirm(struct sock *sk, u8 type, u8 feature)
+static void dccp_feat_empty_confirm(struct dccp_minisock *dmsk,
+                                   u8 type, u8 feature)
 {
-       struct dccp_minisock *dmsk = dccp_msk(sk);
        /* XXX check if other confirms for that are queued and recycle slot */
        struct dccp_opt_pend *opt = kzalloc(sizeof(*opt), GFP_ATOMIC);
 
@@ -323,7 +321,7 @@ static void dccp_feat_empty_confirm(struct sock *sk, u8 type, u8 feature)
        opt->dccpop_type = type == DCCPO_CHANGE_L ? DCCPO_CONFIRM_R :
                                                    DCCPO_CONFIRM_L;
        opt->dccpop_feat = feature;
-       opt->dccpop_val  = 0;
+       opt->dccpop_val  = NULL;
        opt->dccpop_len  = 0;
 
        /* change feature */
@@ -388,7 +386,7 @@ int dccp_feat_change_recv(struct sock *sk, u8 type, u8 feature, u8 *val, u8 len)
                 * mandatory
                 */
                if (rc != DCCP_FEAT_SP_NOAGREE)
-                       dccp_feat_empty_confirm(sk, type, feature);
+                       dccp_feat_empty_confirm(dccp_msk(sk), type, feature);
        }
 
        /* generate the confirm [if required] */
@@ -456,9 +454,8 @@ int dccp_feat_confirm_recv(struct sock *sk, u8 type, u8 feature,
 
 EXPORT_SYMBOL_GPL(dccp_feat_confirm_recv);
 
-void dccp_feat_clean(struct sock *sk)
+void dccp_feat_clean(struct dccp_minisock *dmsk)
 {
-       struct dccp_minisock *dmsk = dccp_msk(sk);
        struct dccp_opt_pend *opt, *next;
 
        list_for_each_entry_safe(opt, next, &dmsk->dccpms_pending,
@@ -525,7 +522,7 @@ int dccp_feat_clone(struct sock *oldsk, struct sock *newsk)
                 * once...
                 */
                /* the master socket no longer needs to worry about confirms */
-               opt->dccpop_sc = 0; /* it's not a memleak---new socket has it */
+               opt->dccpop_sc = NULL; /* it's not a memleak---new socket has it */
 
                /* reset state for a new socket */
                opt->dccpop_conf = 0;
@@ -537,49 +534,49 @@ out:
        return rc;
 
 out_clean:
-       dccp_feat_clean(newsk);
+       dccp_feat_clean(newdmsk);
        rc = -ENOMEM;
        goto out;
 }
 
 EXPORT_SYMBOL_GPL(dccp_feat_clone);
 
-static int __dccp_feat_init(struct sock *sk, u8 type, u8 feat, u8 *val, u8 len)
+static int __dccp_feat_init(struct dccp_minisock *dmsk, u8 type, u8 feat,
+                           u8 *val, u8 len)
 {
        int rc = -ENOMEM;
        u8 *copy = kmalloc(len, GFP_KERNEL);
 
        if (copy != NULL) {
                memcpy(copy, val, len);
-               rc = dccp_feat_change(sk, type, feat, copy, len, GFP_KERNEL);
+               rc = dccp_feat_change(dmsk, type, feat, copy, len, GFP_KERNEL);
                if (rc)
                        kfree(copy);
        }
        return rc;
 }
 
-int dccp_feat_init(struct sock *sk)
+int dccp_feat_init(struct dccp_minisock *dmsk)
 {
-       struct dccp_minisock *dmsk = dccp_msk(sk);
        int rc;
 
        INIT_LIST_HEAD(&dmsk->dccpms_pending);
        INIT_LIST_HEAD(&dmsk->dccpms_conf);
 
        /* CCID L */
-       rc = __dccp_feat_init(sk, DCCPO_CHANGE_L, DCCPF_CCID,
+       rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_L, DCCPF_CCID,
                              &dmsk->dccpms_tx_ccid, 1);
        if (rc)
                goto out;
 
        /* CCID R */
-       rc = __dccp_feat_init(sk, DCCPO_CHANGE_R, DCCPF_CCID,
+       rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_R, DCCPF_CCID,
                              &dmsk->dccpms_rx_ccid, 1);
        if (rc)
                goto out;
 
        /* Ack ratio */
-       rc = __dccp_feat_init(sk, DCCPO_CHANGE_L, DCCPF_ACK_RATIO,
+       rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_L, DCCPF_ACK_RATIO,
                              &dmsk->dccpms_ack_ratio, 1);
 out:
        return rc;