]> err.no Git - linux-2.6/blobdiff - drivers/message/i2o/bus-osm.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[linux-2.6] / drivers / message / i2o / bus-osm.c
index ce039d322fd0ce5bc927818a37a46c59fcd2bc39..c463dc2efc09490b26bdc6e2d0e46fdd694dce74 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/i2o.h>
 
 #define OSM_NAME       "bus-osm"
-#define OSM_VERSION    "$Rev$"
+#define OSM_VERSION    "1.317"
 #define OSM_DESCRIPTION        "I2O Bus Adapter OSM"
 
 static struct i2o_driver i2o_bus_driver;
@@ -56,6 +56,9 @@ static int i2o_bus_scan(struct i2o_device *dev)
 /**
  *     i2o_bus_store_scan - Scan the I2O Bus Adapter
  *     @d: device which should be scanned
+ *     @attr: device_attribute
+ *     @buf: output buffer
+ *     @count: buffer size
  *
  *     Returns count.
  */
@@ -80,18 +83,26 @@ static DEVICE_ATTR(scan, S_IWUSR, NULL, i2o_bus_store_scan);
  *     @dev: device to verify if it is a I2O Bus Adapter device
  *
  *     Because we want all Bus Adapters always return 0.
+ *     Except when we fail.  Then we are sad.
  *
- *     Returns 0.
+ *     Returns 0, except when we fail to excel.
  */
 static int i2o_bus_probe(struct device *dev)
 {
        struct i2o_device *i2o_dev = to_i2o_device(get_device(dev));
+       int rc;
 
-       device_create_file(dev, &dev_attr_scan);
+       rc = device_create_file(dev, &dev_attr_scan);
+       if (rc)
+               goto err_out;
 
        osm_info("device added (TID: %03x)\n", i2o_dev->lct_data.tid);
 
        return 0;
+
+err_out:
+       put_device(dev);
+       return rc;
 };
 
 /**