Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 157451
b: refs/heads/master
c: c630493
h: refs/heads/master
i:
  157449: 9107880
  157447: a3c6173
v: v3
  • Loading branch information
Sebastian Ott authored and Martin Schwidefsky committed Sep 11, 2009
1 parent 69d9e47 commit c471358
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c48ff644f2c86f34f69f382b68b16c6d30854783
refs/heads/master: c6304933274f8e3cc6983d496456757ac8ab2e0b
2 changes: 1 addition & 1 deletion trunk/drivers/char/hvc_iucv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,7 @@ static int __init hvc_iucv_alloc(int id, unsigned int is_console)
priv->dev->release = (void (*)(struct device *)) kfree;
rc = device_register(priv->dev);
if (rc) {
kfree(priv->dev);
put_device(priv->dev);
goto out_error_dev;
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/s390/char/monreader.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ static int __init mon_init(void)
monreader_device->release = (void (*)(struct device *))kfree;
rc = device_register(monreader_device);
if (rc) {
kfree(monreader_device);
put_device(monreader_device);
goto out_driver;
}

Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/s390/char/vmlogrdr.c
Original file line number Diff line number Diff line change
Expand Up @@ -765,8 +765,10 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
} else
return -ENOMEM;
ret = device_register(dev);
if (ret)
if (ret) {
put_device(dev);
return ret;
}

ret = sysfs_create_group(&dev->kobj, &vmlogrdr_attr_group);
if (ret) {
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/s390/cio/chp.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,8 @@ int chp_new(struct chp_id chpid)
if (ret) {
CIO_MSG_EVENT(0, "Could not register chp%x.%02x: %d\n",
chpid.cssid, chpid.id, ret);
goto out_free;
put_device(&chp->dev);
goto out;
}
ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group);
if (ret) {
Expand Down
23 changes: 8 additions & 15 deletions trunk/drivers/s390/cio/css.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,18 +151,6 @@ css_alloc_subchannel(struct subchannel_id schid)
return sch;
}

static void
css_free_subchannel(struct subchannel *sch)
{
if (sch) {
/* Reset intparm to zeroes. */
sch->config.intparm = 0;
cio_commit_config(sch);
kfree(sch->lock);
kfree(sch);
}
}

static void
css_subchannel_release(struct device *dev)
{
Expand Down Expand Up @@ -332,7 +320,7 @@ int css_probe_device(struct subchannel_id schid)
return PTR_ERR(sch);
ret = css_register_subchannel(sch);
if (ret)
css_free_subchannel(sch);
put_device(&sch->dev);
return ret;
}

Expand Down Expand Up @@ -649,7 +637,10 @@ __init_channel_subsystem(struct subchannel_id schid, void *data)
* not working) so we do it now. This is true e.g. for the
* console subchannel.
*/
css_register_subchannel(sch);
if (css_register_subchannel(sch)) {
if (!cio_is_console(schid))
put_device(&sch->dev);
}
return 0;
}

Expand Down Expand Up @@ -925,8 +916,10 @@ init_channel_subsystem (void)
goto out_device;
}
ret = device_register(&css->pseudo_subchannel->dev);
if (ret)
if (ret) {
put_device(&css->pseudo_subchannel->dev);
goto out_file;
}
}
ret = register_reboot_notifier(&css_reboot_notifier);
if (ret)
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/s390/crypto/ap_bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -1114,7 +1114,7 @@ static void ap_scan_bus(struct work_struct *unused)
ap_dev->device.release = ap_device_release;
rc = device_register(&ap_dev->device);
if (rc) {
kfree(ap_dev);
put_device(&ap_dev->device);
continue;
}
/* Add device attributes. */
Expand Down
9 changes: 6 additions & 3 deletions trunk/drivers/s390/net/netiucv.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;

Expand Down
6 changes: 3 additions & 3 deletions trunk/drivers/s390/net/smsgiucv.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,13 @@ static int __init smsg_init(void)
smsg_dev->driver = &smsg_driver;
rc = device_register(smsg_dev);
if (rc)
goto out_free_dev;
goto out_put;

cpcmd("SET SMSG IUCV", NULL, 0, NULL);
return 0;

out_free_dev:
kfree(smsg_dev);
out_put:
put_device(smsg_dev);
out_free_path:
iucv_path_free(smsg_path);
smsg_path = NULL;
Expand Down

0 comments on commit c471358

Please sign in to comment.