提交 8024bb24 编写于 作者: L Luiz Capitulino 提交者: David S. Miller

[PKTGEN]: Fix Initialization fail leak.

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

This patch changes that behaivor, by returning an 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: NLuiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 12e18723
...@@ -3216,11 +3216,24 @@ static int __init pg_init(void) ...@@ -3216,11 +3216,24 @@ static int __init pg_init(void)
register_netdevice_notifier(&pktgen_notifier_block); register_netdevice_notifier(&pktgen_notifier_block);
for_each_online_cpu(cpu) { for_each_online_cpu(cpu) {
int err;
char buf[30]; char buf[30];
sprintf(buf, "kpktgend_%i", cpu); 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; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册