/*
* drivers/s390/cio/chsc.c
* S/390 common I/O routines -- channel subsystem call
- * $Revision: 1.115 $
+ * $Revision: 1.114 $
*
* Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH,
* IBM Corporation
return -ENOMEM;
memset(chp, 0, sizeof(struct channel_path));
+ chps[chpid] = chp;
+
/* fill in status, etc. */
chp->id = chpid;
chp->state = 1;
if (ret) {
printk(KERN_WARNING "%s: could not register %02x\n",
__func__, chpid);
- goto out_free;
+ return ret;
}
ret = device_create_file(&chp->dev, &dev_attr_status);
- if (ret) {
+ if (ret)
device_unregister(&chp->dev);
- goto out_free;
- } else
- chps[chpid] = chp;
- return ret;
-out_free:
- kfree(chp);
+
return ret;
}