Skip to content

Commit

Permalink
[PKTGEN]: Fix Initialization fail leak.
Browse files Browse the repository at this point in the history
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: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Luiz Capitulino authored and David S. Miller committed Mar 21, 2006
1 parent 12e1872 commit 8024bb2
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion net/core/pktgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -3216,11 +3216,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;
}

Expand Down

0 comments on commit 8024bb2

Please sign in to comment.