diff options
Diffstat (limited to 'drivers/usb/misc/cytherm.c')
-rw-r--r-- | drivers/usb/misc/cytherm.c | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/drivers/usb/misc/cytherm.c b/drivers/usb/misc/cytherm.c index a04204292aa3..04e87acd6e46 100644 --- a/drivers/usb/misc/cytherm.c +++ b/drivers/usb/misc/cytherm.c | |||
@@ -14,7 +14,6 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
@@ -354,7 +353,7 @@ static int cytherm_probe(struct usb_interface *interface, | |||
354 | dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL); | 353 | dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL); |
355 | if (dev == NULL) { | 354 | if (dev == NULL) { |
356 | dev_err (&interface->dev, "Out of memory\n"); | 355 | dev_err (&interface->dev, "Out of memory\n"); |
357 | goto error; | 356 | goto error_mem; |
358 | } | 357 | } |
359 | 358 | ||
360 | dev->udev = usb_get_dev(udev); | 359 | dev->udev = usb_get_dev(udev); |
@@ -363,18 +362,35 @@ static int cytherm_probe(struct usb_interface *interface, | |||
363 | 362 | ||
364 | dev->brightness = 0xFF; | 363 | dev->brightness = 0xFF; |
365 | 364 | ||
366 | device_create_file(&interface->dev, &dev_attr_brightness); | 365 | retval = device_create_file(&interface->dev, &dev_attr_brightness); |
367 | device_create_file(&interface->dev, &dev_attr_temp); | 366 | if (retval) |
368 | device_create_file(&interface->dev, &dev_attr_button); | 367 | goto error; |
369 | device_create_file(&interface->dev, &dev_attr_port0); | 368 | retval = device_create_file(&interface->dev, &dev_attr_temp); |
370 | device_create_file(&interface->dev, &dev_attr_port1); | 369 | if (retval) |
370 | goto error; | ||
371 | retval = device_create_file(&interface->dev, &dev_attr_button); | ||
372 | if (retval) | ||
373 | goto error; | ||
374 | retval = device_create_file(&interface->dev, &dev_attr_port0); | ||
375 | if (retval) | ||
376 | goto error; | ||
377 | retval = device_create_file(&interface->dev, &dev_attr_port1); | ||
378 | if (retval) | ||
379 | goto error; | ||
371 | 380 | ||
372 | dev_info (&interface->dev, | 381 | dev_info (&interface->dev, |
373 | "Cypress thermometer device now attached\n"); | 382 | "Cypress thermometer device now attached\n"); |
374 | return 0; | 383 | return 0; |
375 | 384 | error: | |
376 | error: | 385 | device_remove_file(&interface->dev, &dev_attr_brightness); |
386 | device_remove_file(&interface->dev, &dev_attr_temp); | ||
387 | device_remove_file(&interface->dev, &dev_attr_button); | ||
388 | device_remove_file(&interface->dev, &dev_attr_port0); | ||
389 | device_remove_file(&interface->dev, &dev_attr_port1); | ||
390 | usb_set_intfdata (interface, NULL); | ||
391 | usb_put_dev(dev->udev); | ||
377 | kfree(dev); | 392 | kfree(dev); |
393 | error_mem: | ||
378 | return retval; | 394 | return retval; |
379 | } | 395 | } |
380 | 396 | ||