aboutsummaryrefslogtreecommitdiff
path: root/drivers/s390/net/fsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/fsm.c')
-rw-r--r--drivers/s390/net/fsm.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/s390/net/fsm.c b/drivers/s390/net/fsm.c
index 38f50b7129a..e5dea67f902 100644
--- a/drivers/s390/net/fsm.c
+++ b/drivers/s390/net/fsm.c
@@ -1,13 +1,11 @@
/**
- * $Id: fsm.c,v 1.6 2003/10/15 11:37:29 mschwide Exp $
- *
* A generic FSM based on fsm used in isdn4linux
*
*/
#include "fsm.h"
-#include <linux/config.h>
#include <linux/module.h>
+#include <linux/slab.h>
#include <linux/timer.h>
MODULE_AUTHOR("(C) 2000 IBM Corp. by Fritz Elfert (felfert@millenux.com)");
@@ -23,38 +21,35 @@ init_fsm(char *name, const char **state_names, const char **event_names, int nr_
fsm_function_t *m;
fsm *f;
- this = (fsm_instance *)kmalloc(sizeof(fsm_instance), order);
+ this = kzalloc(sizeof(fsm_instance), order);
if (this == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc instance\n", name);
return NULL;
}
- memset(this, 0, sizeof(fsm_instance));
strlcpy(this->name, name, sizeof(this->name));
+ init_waitqueue_head(&this->wait_q);
- f = (fsm *)kmalloc(sizeof(fsm), order);
+ f = kzalloc(sizeof(fsm), order);
if (f == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc fsm\n", name);
kfree_fsm(this);
return NULL;
}
- memset(f, 0, sizeof(fsm));
f->nr_events = nr_events;
f->nr_states = nr_states;
f->event_names = event_names;
f->state_names = state_names;
this->f = f;
- m = (fsm_function_t *)kmalloc(
- sizeof(fsm_function_t) * nr_states * nr_events, order);
+ m = kcalloc(nr_states*nr_events, sizeof(fsm_function_t), order);
if (m == NULL) {
printk(KERN_WARNING
"fsm(%s): init_fsm: Couldn't alloc jumptable\n", name);
kfree_fsm(this);
return NULL;
}
- memset(m, 0, sizeof(fsm_function_t) * f->nr_states * f->nr_events);
f->jumpmatrix = m;
for (i = 0; i < tmpl_len; i++) {
@@ -78,8 +73,7 @@ kfree_fsm(fsm_instance *this)
{
if (this) {
if (this->f) {
- if (this->f->jumpmatrix)
- kfree(this->f->jumpmatrix);
+ kfree(this->f->jumpmatrix);
kfree(this->f);
}
kfree(this);