]> err.no Git - linux-2.6/blobdiff - drivers/rtc/rtc-x1205.c
[PATCH] RTC: handle sysfs errors
[linux-2.6] / drivers / rtc / rtc-x1205.c
index 522c69753bbfb3843b6dccf1c4f922b43e45a666..9a67487d086ba55ab36e202c1e7bbc9f9cf1239d 100644 (file)
@@ -562,11 +562,19 @@ static int x1205_probe(struct i2c_adapter *adapter, int address, int kind)
        else
                dev_err(&client->dev, "couldn't read status\n");
 
-       device_create_file(&client->dev, &dev_attr_atrim);
-       device_create_file(&client->dev, &dev_attr_dtrim);
+       err = device_create_file(&client->dev, &dev_attr_atrim);
+       if (err) goto exit_devreg;
+       err = device_create_file(&client->dev, &dev_attr_dtrim);
+       if (err) goto exit_atrim;
 
        return 0;
 
+exit_atrim:
+       device_remove_file(&client->dev, &dev_attr_atrim);
+
+exit_devreg:
+       rtc_device_unregister(rtc);
+
 exit_detach:
        i2c_detach_client(client);