diff options
-rw-r--r-- | net/core/pktgen.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index f2c0e965c139..eef1392b7f8e 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -3082,6 +3082,7 @@ static struct pktgen_thread *__init pktgen_find_thread(const char *name) | |||
3082 | 3082 | ||
3083 | static int __init pktgen_create_thread(const char *name, int cpu) | 3083 | static int __init pktgen_create_thread(const char *name, int cpu) |
3084 | { | 3084 | { |
3085 | int err; | ||
3085 | struct pktgen_thread *t = NULL; | 3086 | struct pktgen_thread *t = NULL; |
3086 | struct proc_dir_entry *pe; | 3087 | struct proc_dir_entry *pe; |
3087 | 3088 | ||
@@ -3120,9 +3121,15 @@ static int __init pktgen_create_thread(const char *name, int cpu) | |||
3120 | 3121 | ||
3121 | t->removed = 0; | 3122 | t->removed = 0; |
3122 | 3123 | ||
3123 | if (kernel_thread((void *)pktgen_thread_worker, (void *)t, | 3124 | err = kernel_thread((void *)pktgen_thread_worker, (void *)t, |
3124 | CLONE_FS | CLONE_FILES | CLONE_SIGHAND) < 0) | 3125 | CLONE_FS | CLONE_FILES | CLONE_SIGHAND); |
3126 | if (err < 0) { | ||
3125 | printk("pktgen: kernel_thread() failed for cpu %d\n", t->cpu); | 3127 | printk("pktgen: kernel_thread() failed for cpu %d\n", t->cpu); |
3128 | remove_proc_entry(t->name, pg_proc_dir); | ||
3129 | list_del(&t->th_list); | ||
3130 | kfree(t); | ||
3131 | return err; | ||
3132 | } | ||
3126 | 3133 | ||
3127 | return 0; | 3134 | return 0; |
3128 | } | 3135 | } |