diff options
| author | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-28 08:29:59 -0400 |
|---|---|---|
| committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-28 08:29:59 -0400 |
| commit | 185a257f2f73bcd89050ad02da5bedbc28fc43fa (patch) | |
| tree | 5e32586114534ed3f2165614cba3d578f5d87307 /drivers/usb/misc/usbled.c | |
| parent | 3f1a9aaeffd8d1cbc5ab9776c45cbd66af1c9699 (diff) | |
| parent | a77c64c1a641950626181b4857abb701d8f38ccc (diff) | |
Merge branch 'master' into gfs2
Diffstat (limited to 'drivers/usb/misc/usbled.c')
| -rw-r--r-- | drivers/usb/misc/usbled.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/usb/misc/usbled.c b/drivers/usb/misc/usbled.c index 0c5ee0ad6bb9..49c5c5c4c431 100644 --- a/drivers/usb/misc/usbled.c +++ b/drivers/usb/misc/usbled.c | |||
| @@ -108,22 +108,34 @@ static int led_probe(struct usb_interface *interface, const struct usb_device_id | |||
| 108 | dev = kzalloc(sizeof(struct usb_led), GFP_KERNEL); | 108 | dev = kzalloc(sizeof(struct usb_led), GFP_KERNEL); |
| 109 | if (dev == NULL) { | 109 | if (dev == NULL) { |
| 110 | dev_err(&interface->dev, "Out of memory\n"); | 110 | dev_err(&interface->dev, "Out of memory\n"); |
| 111 | goto error; | 111 | goto error_mem; |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | dev->udev = usb_get_dev(udev); | 114 | dev->udev = usb_get_dev(udev); |
| 115 | 115 | ||
| 116 | usb_set_intfdata (interface, dev); | 116 | usb_set_intfdata (interface, dev); |
| 117 | 117 | ||
| 118 | device_create_file(&interface->dev, &dev_attr_blue); | 118 | retval = device_create_file(&interface->dev, &dev_attr_blue); |
| 119 | device_create_file(&interface->dev, &dev_attr_red); | 119 | if (retval) |
| 120 | device_create_file(&interface->dev, &dev_attr_green); | 120 | goto error; |
| 121 | retval = device_create_file(&interface->dev, &dev_attr_red); | ||
| 122 | if (retval) | ||
| 123 | goto error; | ||
| 124 | retval = device_create_file(&interface->dev, &dev_attr_green); | ||
| 125 | if (retval) | ||
| 126 | goto error; | ||
| 121 | 127 | ||
| 122 | dev_info(&interface->dev, "USB LED device now attached\n"); | 128 | dev_info(&interface->dev, "USB LED device now attached\n"); |
| 123 | return 0; | 129 | return 0; |
| 124 | 130 | ||
| 125 | error: | 131 | error: |
| 132 | device_remove_file(&interface->dev, &dev_attr_blue); | ||
| 133 | device_remove_file(&interface->dev, &dev_attr_red); | ||
| 134 | device_remove_file(&interface->dev, &dev_attr_green); | ||
| 135 | usb_set_intfdata (interface, NULL); | ||
| 136 | usb_put_dev(dev->udev); | ||
| 126 | kfree(dev); | 137 | kfree(dev); |
| 138 | error_mem: | ||
| 127 | return retval; | 139 | return retval; |
| 128 | } | 140 | } |
| 129 | 141 | ||
