forked from Minki/linux
1b6725dea7
Removed the __exit annotation of tfrc_lib_exit(), in order to suppress the following section mismatch messages: WARNING: net/dccp/dccp.o(.text+0xd9): Section mismatch in reference from the function ccid_cleanup_builtins() to the function .exit.text:tfrc_lib_exit() The function ccid_cleanup_builtins() references a function in an exit section. Often the function tfrc_lib_exit() has valid usage outside the exit section and the fix is to remove the __exit annotation of tfrc_lib_exit. WARNING: net/dccp/dccp.o(.init.text+0x48): Section mismatch in reference from the function ccid_initialize_builtins() to the function .exit.text:tfrc_lib_exit() The function __init ccid_initialize_builtins() references a function __exit tfrc_lib_exit(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __exit annotation of tfrc_lib_exit() so it may be used outside an exit section. Signed-off-by: Leonardo Potenza <lpotenza@inwind.it> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
45 lines
815 B
C
45 lines
815 B
C
/*
|
|
* TFRC library initialisation
|
|
*
|
|
* Copyright (c) 2007 The University of Aberdeen, Scotland, UK
|
|
* Copyright (c) 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
*/
|
|
#include "tfrc.h"
|
|
|
|
#ifdef CONFIG_IP_DCCP_TFRC_DEBUG
|
|
int tfrc_debug;
|
|
module_param(tfrc_debug, bool, 0644);
|
|
MODULE_PARM_DESC(tfrc_debug, "Enable TFRC debug messages");
|
|
#endif
|
|
|
|
int __init tfrc_lib_init(void)
|
|
{
|
|
int rc = tfrc_li_init();
|
|
|
|
if (rc)
|
|
goto out;
|
|
|
|
rc = tfrc_tx_packet_history_init();
|
|
if (rc)
|
|
goto out_free_loss_intervals;
|
|
|
|
rc = tfrc_rx_packet_history_init();
|
|
if (rc)
|
|
goto out_free_tx_history;
|
|
return 0;
|
|
|
|
out_free_tx_history:
|
|
tfrc_tx_packet_history_exit();
|
|
out_free_loss_intervals:
|
|
tfrc_li_exit();
|
|
out:
|
|
return rc;
|
|
}
|
|
|
|
void tfrc_lib_exit(void)
|
|
{
|
|
tfrc_rx_packet_history_exit();
|
|
tfrc_tx_packet_history_exit();
|
|
tfrc_li_exit();
|
|
}
|