staging: oplc_dcon: Fix compilation warning.
authorMarek Belisko <marek.belisko@open-nandra.com>
Thu, 3 Feb 2011 13:22:08 +0000 (14:22 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 4 Feb 2011 21:04:53 +0000 (13:04 -0800)
Fix compilation warning:
drivers/staging/olpc_dcon/olpc_dcon.c: In function ‘dcon_probe’:
drivers/staging/olpc_dcon/olpc_dcon.c:704:21: warning: ignoring
return value of ‘device_create_file’, declared with attribute warn_unused_result

and add cleaning of created files when creation of one failed.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/olpc_dcon/olpc_dcon.c

index 56a283d..7221bb8 100644 (file)
@@ -674,7 +674,7 @@ static int dcon_detect(struct i2c_client *client, struct i2c_board_info *info)
 
 static int dcon_probe(struct i2c_client *client, const struct i2c_device_id *id)
 {
-       int rc, i;
+       int rc, i, j;
 
        if (num_registered_fb >= 1)
                fbinfo = registered_fb[0];
@@ -700,8 +700,14 @@ static int dcon_probe(struct i2c_client *client, const struct i2c_device_id *id)
                goto edev;
        }
 
-       for(i = 0; i < ARRAY_SIZE(dcon_device_files); i++)
-               device_create_file(&dcon_device->dev, &dcon_device_files[i]);
+       for(i = 0; i < ARRAY_SIZE(dcon_device_files); i++) {
+               rc = device_create_file(&dcon_device->dev,
+                                       &dcon_device_files[i]);
+               if (rc) {
+                       dev_err(&dcon_device->dev, "Cannot create sysfs file\n");
+                       goto ecreate;
+               }
+       }
 
        /* Add the backlight device for the DCON */
 
@@ -728,6 +734,9 @@ static int dcon_probe(struct i2c_client *client, const struct i2c_device_id *id)
 
        return 0;
 
+ ecreate:
+       for (j = 0; j < i; j++)
+               device_remove_file(&dcon_device->dev, &dcon_device_files[j]);
  edev:
        platform_device_unregister(dcon_device);
        dcon_device = NULL;