|
@@ -353,7 +353,7 @@ static int cytherm_probe(struct usb_interface *interface,
|
|
|
dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL);
|
|
|
if (dev == NULL) {
|
|
|
dev_err (&interface->dev, "Out of memory\n");
|
|
|
- goto error;
|
|
|
+ goto error_mem;
|
|
|
}
|
|
|
|
|
|
dev->udev = usb_get_dev(udev);
|
|
@@ -362,18 +362,35 @@ static int cytherm_probe(struct usb_interface *interface,
|
|
|
|
|
|
dev->brightness = 0xFF;
|
|
|
|
|
|
- device_create_file(&interface->dev, &dev_attr_brightness);
|
|
|
- device_create_file(&interface->dev, &dev_attr_temp);
|
|
|
- device_create_file(&interface->dev, &dev_attr_button);
|
|
|
- device_create_file(&interface->dev, &dev_attr_port0);
|
|
|
- device_create_file(&interface->dev, &dev_attr_port1);
|
|
|
+ retval = device_create_file(&interface->dev, &dev_attr_brightness);
|
|
|
+ if (retval)
|
|
|
+ goto error;
|
|
|
+ retval = device_create_file(&interface->dev, &dev_attr_temp);
|
|
|
+ if (retval)
|
|
|
+ goto error;
|
|
|
+ retval = device_create_file(&interface->dev, &dev_attr_button);
|
|
|
+ if (retval)
|
|
|
+ goto error;
|
|
|
+ retval = device_create_file(&interface->dev, &dev_attr_port0);
|
|
|
+ if (retval)
|
|
|
+ goto error;
|
|
|
+ retval = device_create_file(&interface->dev, &dev_attr_port1);
|
|
|
+ if (retval)
|
|
|
+ goto error;
|
|
|
|
|
|
- dev_info (&interface->dev,
|
|
|
+ dev_info (&interface->dev,
|
|
|
"Cypress thermometer device now attached\n");
|
|
|
return 0;
|
|
|
-
|
|
|
- error:
|
|
|
+error:
|
|
|
+ device_remove_file(&interface->dev, &dev_attr_brightness);
|
|
|
+ device_remove_file(&interface->dev, &dev_attr_temp);
|
|
|
+ device_remove_file(&interface->dev, &dev_attr_button);
|
|
|
+ device_remove_file(&interface->dev, &dev_attr_port0);
|
|
|
+ device_remove_file(&interface->dev, &dev_attr_port1);
|
|
|
+ usb_set_intfdata (interface, NULL);
|
|
|
+ usb_put_dev(dev->udev);
|
|
|
kfree(dev);
|
|
|
+error_mem:
|
|
|
return retval;
|
|
|
}
|
|
|
|