This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / s390 / cio / chsc.c
index de60cfd..e5a9b01 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  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
@@ -906,6 +906,8 @@ new_channel_path(int chpid)
                return -ENOMEM;
        memset(chp, 0, sizeof(struct channel_path));
 
+       chps[chpid] = chp;
+
        /* fill in status, etc. */
        chp->id = chpid;
        chp->state = 1;
@@ -920,17 +922,12 @@ new_channel_path(int chpid)
        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;
 }