From patchwork Fri Dec 26 11:41:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Pargmann X-Patchwork-Id: 4235 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=92.198.50.35; helo=metis.ext.pengutronix.de; envelope-from=mpa@pengutronix.de; receiver=b.a.t.m.a.n@lists.open-mesh.org Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by open-mesh.org (Postfix) with ESMTPS id 742D1601048 for ; Fri, 26 Dec 2014 12:45:03 +0100 (CET) Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1Y4TKA-0001i2-9v; Fri, 26 Dec 2014 12:44:54 +0100 Received: from mpa by dude.hi.pengutronix.de with local (Exim 4.84) (envelope-from ) id 1Y4TK8-00062B-Tw; Fri, 26 Dec 2014 12:44:52 +0100 From: Markus Pargmann To: Marek Lindner , Simon Wunderlich , Antonio Quartulli Date: Fri, 26 Dec 2014 12:41:22 +0100 Message-Id: <1419594103-10928-6-git-send-email-mpa@pengutronix.de> X-Mailer: git-send-email 2.1.3 In-Reply-To: <1419594103-10928-1-git-send-email-mpa@pengutronix.de> References: <1419594103-10928-1-git-send-email-mpa@pengutronix.de> X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: mpa@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: b.a.t.m.a.n@lists.open-mesh.org Cc: b.a.t.m.a.n@lists.open-mesh.org, Sven Eckelmann Subject: [B.A.T.M.A.N.] [PATCH v2 05/26] batman-adv: init, Add some error handling X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Dec 2014 11:45:03 -0000 This patch adds some error handling for the main init function. It checks the return values of all the function calls that provide return values. Signed-off-by: Markus Pargmann --- main.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index a9e09e852c4b..65021ea567e8 100644 --- a/main.c +++ b/main.c @@ -59,29 +59,47 @@ static void batadv_recv_handler_init(void); static int __init batadv_init(void) { + int ret; + INIT_LIST_HEAD(&batadv_hardif_list); INIT_HLIST_HEAD(&batadv_algo_list); batadv_recv_handler_init(); - batadv_iv_init(); - batadv_nc_init(); + ret = batadv_iv_init(); + if (ret) + return ret; + + ret = batadv_nc_init(); + if (ret) + return ret; batadv_event_workqueue = create_singlethread_workqueue("bat_events"); - if (!batadv_event_workqueue) return -ENOMEM; batadv_socket_init(); batadv_debugfs_init(); - register_netdevice_notifier(&batadv_hard_if_notifier); - rtnl_link_register(&batadv_link_ops); + ret = register_netdevice_notifier(&batadv_hard_if_notifier); + if (ret) + goto err_netdev_notifier; + + ret = rtnl_link_register(&batadv_link_ops); + if (ret) + goto err_link_register; pr_info("B.A.T.M.A.N. advanced %s (compatibility version %i) loaded\n", BATADV_SOURCE_VERSION, BATADV_COMPAT_VERSION); return 0; + +err_link_register: + unregister_netdevice_notifier(&batadv_hard_if_notifier); +err_netdev_notifier: + batadv_debugfs_destroy(); + + return ret; } static void __exit batadv_exit(void)