diff options
Diffstat (limited to 'drivers/usb/misc/cytherm.c')
| -rw-r--r-- | drivers/usb/misc/cytherm.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/drivers/usb/misc/cytherm.c b/drivers/usb/misc/cytherm.c index b20bec445552..04e87acd6e46 100644 --- a/drivers/usb/misc/cytherm.c +++ b/drivers/usb/misc/cytherm.c | |||
| @@ -353,7 +353,7 @@ static int cytherm_probe(struct usb_interface *interface, | |||
| 353 | dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL); | 353 | dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL); |
| 354 | if (dev == NULL) { | 354 | if (dev == NULL) { |
| 355 | dev_err (&interface->dev, "Out of memory\n"); | 355 | dev_err (&interface->dev, "Out of memory\n"); |
| 356 | goto error; | 356 | goto error_mem; |
| 357 | } | 357 | } |
| 358 | 358 | ||
| 359 | dev->udev = usb_get_dev(udev); | 359 | dev->udev = usb_get_dev(udev); |
| @@ -362,18 +362,35 @@ static int cytherm_probe(struct usb_interface *interface, | |||
| 362 | 362 | ||
| 363 | dev->brightness = 0xFF; | 363 | dev->brightness = 0xFF; |
| 364 | 364 | ||
| 365 | device_create_file(&interface->dev, &dev_attr_brightness); | 365 | retval = device_create_file(&interface->dev, &dev_attr_brightness); |
| 366 | device_create_file(&interface->dev, &dev_attr_temp); | 366 | if (retval) |
| 367 | device_create_file(&interface->dev, &dev_attr_button); | 367 | goto error; |
| 368 | device_create_file(&interface->dev, &dev_attr_port0); | 368 | retval = device_create_file(&interface->dev, &dev_attr_temp); |
| 369 | 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; | ||
| 370 | 380 | ||
| 371 | dev_info (&interface->dev, | 381 | dev_info (&interface->dev, |
| 372 | "Cypress thermometer device now attached\n"); | 382 | "Cypress thermometer device now attached\n"); |
| 373 | return 0; | 383 | return 0; |
| 374 | 384 | error: | |
| 375 | 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); | ||
| 376 | kfree(dev); | 392 | kfree(dev); |
| 393 | error_mem: | ||
| 377 | return retval; | 394 | return retval; |
| 378 | } | 395 | } |
| 379 | 396 | ||
