diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2009-09-11 08:28:38 (GMT) |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-09-11 08:29:45 (GMT) |
commit | c6304933274f8e3cc6983d496456757ac8ab2e0b (patch) | |
tree | 7d9135cc2f391141650cc2d1740bd276a25f6141 /drivers/s390/net/netiucv.c | |
parent | c48ff644f2c86f34f69f382b68b16c6d30854783 (diff) | |
download | linux-c6304933274f8e3cc6983d496456757ac8ab2e0b.tar.xz |
[S390] proper use of device register
Don't use kfree directly after device registration started.
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/net/netiucv.c')
-rw-r--r-- | drivers/s390/net/netiucv.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index 8c36eaf..87dff11 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c @@ -1839,9 +1839,10 @@ static int netiucv_register_device(struct net_device *ndev) return -ENOMEM; ret = device_register(dev); - - if (ret) + if (ret) { + put_device(dev); return ret; + } ret = netiucv_add_files(dev); if (ret) goto out_unreg; @@ -2226,8 +2227,10 @@ static int __init netiucv_init(void) netiucv_dev->release = (void (*)(struct device *))kfree; netiucv_dev->driver = &netiucv_driver; rc = device_register(netiucv_dev); - if (rc) + if (rc) { + put_device(netiucv_dev); goto out_driver; + } netiucv_banner(); return rc; |