mlx4_core: Support ICM tables in coherent memory
[pandora-kernel.git] / drivers / hwmon / w83l785ts.c
index 3f2bac1..a3fcace 100644 (file)
@@ -236,21 +236,30 @@ static int w83l785ts_detect(struct i2c_adapter *adapter, int address, int kind)
         * Nothing yet, assume it is already started.
         */
 
+       err = device_create_file(&new_client->dev,
+                                &sensor_dev_attr_temp1_input.dev_attr);
+       if (err)
+               goto exit_remove;
+
+       err = device_create_file(&new_client->dev,
+                                &sensor_dev_attr_temp1_max.dev_attr);
+       if (err)
+               goto exit_remove;
+
        /* Register sysfs hooks */
        data->class_dev = hwmon_device_register(&new_client->dev);
        if (IS_ERR(data->class_dev)) {
                err = PTR_ERR(data->class_dev);
-               goto exit_detach;
+               goto exit_remove;
        }
 
-       device_create_file(&new_client->dev,
-                          &sensor_dev_attr_temp1_input.dev_attr);
-       device_create_file(&new_client->dev,
-                          &sensor_dev_attr_temp1_max.dev_attr);
-
        return 0;
 
-exit_detach:
+exit_remove:
+       device_remove_file(&new_client->dev,
+                          &sensor_dev_attr_temp1_input.dev_attr);
+       device_remove_file(&new_client->dev,
+                          &sensor_dev_attr_temp1_max.dev_attr);
        i2c_detach_client(new_client);
 exit_free:
        kfree(data);
@@ -264,7 +273,10 @@ static int w83l785ts_detach_client(struct i2c_client *client)
        int err;
 
        hwmon_device_unregister(data->class_dev);
-
+       device_remove_file(&client->dev,
+                          &sensor_dev_attr_temp1_input.dev_attr);
+       device_remove_file(&client->dev,
+                          &sensor_dev_attr_temp1_max.dev_attr);
        if ((err = i2c_detach_client(client)))
                return err;