netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4/4]  pktgen: Fix Initialization fail leak.
@ 2006-01-30  1:21 Luiz Fernando Capitulino
  0 siblings, 0 replies; only message in thread
From: Luiz Fernando Capitulino @ 2006-01-30  1:21 UTC (permalink / raw)
  To: davem; +Cc: lkml, netdev, robert.olsson


 Even if pktgen's thread initialization fails for all CPUs, the module
will be successfully loaded.

 This patch changes that behaivor, by returning error on module load time,
and also freeing all the resources allocated. It also prints a warning if a
thread initialization has failed.

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>


---

 net/core/pktgen.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

909df2e921dabd2f43f80f4fe067bf3b86fbc3cd
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index af310e5..3806068 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -3136,11 +3136,24 @@ static int __init pg_init(void)
 	register_netdevice_notifier(&pktgen_notifier_block);
 
 	for_each_online_cpu(cpu) {
+		int err;
 		char buf[30];
 
 		sprintf(buf, "kpktgend_%i", cpu);
-		pktgen_create_thread(buf, cpu);
+		err = pktgen_create_thread(buf, cpu);
+		if (err)
+			printk("pktgen: WARNING: Cannot create thread for cpu %d (%d)\n",
+					cpu, err);
 	}
+
+	if (list_empty(&pktgen_threads)) {
+		printk("pktgen: ERROR: Initialization failed for all threads\n");
+		unregister_netdevice_notifier(&pktgen_notifier_block);
+		remove_proc_entry(PGCTRL, pg_proc_dir);
+		proc_net_remove(PG_PROC_DIR);
+		return -ENODEV;
+	}
+
 	return 0;
 }
 
-- 
1.1.5.g3480


-- 
Luiz Fernando N. Capitulino

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2006-01-30  1:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-30  1:21 [PATCH 4/4] pktgen: Fix Initialization fail leak Luiz Fernando Capitulino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).