Browse Source

[DCCP] CCID: Allow ccid_{init,exit} to be NULL

Testing if the ccid being instantiated has these methods in
ccid_init().

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Arnaldo Carvalho de Melo 19 years ago
parent
commit
411447019a
2 changed files with 1 additions and 15 deletions
  1. 1 4
      net/dccp/ccid.c
  2. 0 11
      net/dccp/ccids/ccid3.c

+ 1 - 4
net/dccp/ccid.c

@@ -59,9 +59,6 @@ int ccid_register(struct ccid *ccid)
 {
 {
 	int err;
 	int err;
 
 
-	if (ccid->ccid_init == NULL)
-		return -1;
-
 	ccids_write_lock();
 	ccids_write_lock();
 	err = -EEXIST;
 	err = -EEXIST;
 	if (ccids[ccid->ccid_id] == NULL) {
 	if (ccids[ccid->ccid_id] == NULL) {
@@ -106,7 +103,7 @@ struct ccid *ccid_init(unsigned char id, struct sock *sk)
 	if (!try_module_get(ccid->ccid_owner))
 	if (!try_module_get(ccid->ccid_owner))
 		goto out_err;
 		goto out_err;
 
 
-	if (ccid->ccid_init(sk) != 0)
+	if (ccid->ccid_init != NULL && ccid->ccid_init(sk) != 0)
 		goto out_module_put;
 		goto out_module_put;
 out:
 out:
 	ccids_read_unlock();
 	ccids_read_unlock();

+ 0 - 11
net/dccp/ccids/ccid3.c

@@ -76,15 +76,6 @@ static struct dccp_tx_hist *ccid3_tx_hist;
 static struct dccp_rx_hist *ccid3_rx_hist;
 static struct dccp_rx_hist *ccid3_rx_hist;
 static struct dccp_li_hist *ccid3_li_hist;
 static struct dccp_li_hist *ccid3_li_hist;
 
 
-static int ccid3_init(struct sock *sk)
-{
-	return 0;
-}
-
-static void ccid3_exit(struct sock *sk)
-{
-}
-
 /* TFRC sender states */
 /* TFRC sender states */
 enum ccid3_hc_tx_states {
 enum ccid3_hc_tx_states {
        	TFRC_SSTATE_NO_SENT = 1,
        	TFRC_SSTATE_NO_SENT = 1,
@@ -1182,8 +1173,6 @@ static struct ccid ccid3 = {
 	.ccid_id		   = 3,
 	.ccid_id		   = 3,
 	.ccid_name		   = "ccid3",
 	.ccid_name		   = "ccid3",
 	.ccid_owner		   = THIS_MODULE,
 	.ccid_owner		   = THIS_MODULE,
-	.ccid_init		   = ccid3_init,
-	.ccid_exit		   = ccid3_exit,
 	.ccid_hc_tx_init	   = ccid3_hc_tx_init,
 	.ccid_hc_tx_init	   = ccid3_hc_tx_init,
 	.ccid_hc_tx_exit	   = ccid3_hc_tx_exit,
 	.ccid_hc_tx_exit	   = ccid3_hc_tx_exit,
 	.ccid_hc_tx_send_packet	   = ccid3_hc_tx_send_packet,
 	.ccid_hc_tx_send_packet	   = ccid3_hc_tx_send_packet,