diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/core/file.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index b263a54a13c0..70898716dd9a 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c | |||
@@ -158,14 +158,13 @@ int usb_register_dev(struct usb_interface *intf, | |||
158 | ++temp; | 158 | ++temp; |
159 | else | 159 | else |
160 | temp = name; | 160 | temp = name; |
161 | intf->class_dev = class_device_create(usb_class, NULL, | 161 | intf->usb_dev = device_create(usb_class, &intf->dev, |
162 | MKDEV(USB_MAJOR, minor), | 162 | MKDEV(USB_MAJOR, minor), "%s", temp); |
163 | &intf->dev, "%s", temp); | 163 | if (IS_ERR(intf->usb_dev)) { |
164 | if (IS_ERR(intf->class_dev)) { | ||
165 | spin_lock (&minor_lock); | 164 | spin_lock (&minor_lock); |
166 | usb_minors[intf->minor] = NULL; | 165 | usb_minors[intf->minor] = NULL; |
167 | spin_unlock (&minor_lock); | 166 | spin_unlock (&minor_lock); |
168 | retval = PTR_ERR(intf->class_dev); | 167 | retval = PTR_ERR(intf->usb_dev); |
169 | } | 168 | } |
170 | exit: | 169 | exit: |
171 | return retval; | 170 | return retval; |
@@ -206,8 +205,8 @@ void usb_deregister_dev(struct usb_interface *intf, | |||
206 | spin_unlock (&minor_lock); | 205 | spin_unlock (&minor_lock); |
207 | 206 | ||
208 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); | 207 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); |
209 | class_device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); | 208 | device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); |
210 | intf->class_dev = NULL; | 209 | intf->usb_dev = NULL; |
211 | intf->minor = -1; | 210 | intf->minor = -1; |
212 | } | 211 | } |
213 | EXPORT_SYMBOL(usb_deregister_dev); | 212 | EXPORT_SYMBOL(usb_deregister_dev); |