xref: /openbmc/linux/net/dccp/ccids/lib/tfrc.c (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
2c40616c5SGerrit Renker /*
3129fa447SGerrit Renker  * TFRC library initialisation
4c40616c5SGerrit Renker  *
5c40616c5SGerrit Renker  * Copyright (c) 2007 The University of Aberdeen, Scotland, UK
6c40616c5SGerrit Renker  * Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
7c40616c5SGerrit Renker  */
8d9b93842SPaul Gortmaker #include <linux/moduleparam.h>
9c40616c5SGerrit Renker #include "tfrc.h"
10c40616c5SGerrit Renker 
11c40616c5SGerrit Renker #ifdef CONFIG_IP_DCCP_TFRC_DEBUG
1209db3080SGerrit Renker bool tfrc_debug;
13157439faSGerrit Renker module_param(tfrc_debug, bool, 0644);
14129fa447SGerrit Renker MODULE_PARM_DESC(tfrc_debug, "Enable TFRC debug messages");
15c40616c5SGerrit Renker #endif
16c40616c5SGerrit Renker 
tfrc_lib_init(void)17129fa447SGerrit Renker int __init tfrc_lib_init(void)
18c40616c5SGerrit Renker {
19954c2db8SGerrit Renker 	int rc = tfrc_li_init();
20c40616c5SGerrit Renker 
21df8f83fdSGerrit Renker 	if (rc)
22df8f83fdSGerrit Renker 		goto out;
23c40616c5SGerrit Renker 
24df8f83fdSGerrit Renker 	rc = tfrc_tx_packet_history_init();
25df8f83fdSGerrit Renker 	if (rc)
26df8f83fdSGerrit Renker 		goto out_free_loss_intervals;
27df8f83fdSGerrit Renker 
28df8f83fdSGerrit Renker 	rc = tfrc_rx_packet_history_init();
29df8f83fdSGerrit Renker 	if (rc)
30df8f83fdSGerrit Renker 		goto out_free_tx_history;
31df8f83fdSGerrit Renker 	return 0;
32df8f83fdSGerrit Renker 
33df8f83fdSGerrit Renker out_free_tx_history:
34df8f83fdSGerrit Renker 	tfrc_tx_packet_history_exit();
35df8f83fdSGerrit Renker out_free_loss_intervals:
36954c2db8SGerrit Renker 	tfrc_li_exit();
37df8f83fdSGerrit Renker out:
38c40616c5SGerrit Renker 	return rc;
39c40616c5SGerrit Renker }
40c40616c5SGerrit Renker 
tfrc_lib_exit(void)411b6725deSLeonardo Potenza void tfrc_lib_exit(void)
42c40616c5SGerrit Renker {
43df8f83fdSGerrit Renker 	tfrc_rx_packet_history_exit();
44df8f83fdSGerrit Renker 	tfrc_tx_packet_history_exit();
45954c2db8SGerrit Renker 	tfrc_li_exit();
46c40616c5SGerrit Renker }
47