git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git]
/
drivers
/
usb
/
core
/
file.c
diff --git
a/drivers/usb/core/file.c
b/drivers/usb/core/file.c
index
39fdcea
..
c744043
100644
(file)
--- a/
drivers/usb/core/file.c
+++ b/
drivers/usb/core/file.c
@@
-79,14
+79,25
@@
static struct class usb_class = {
int usb_major_init(void)
{
int usb_major_init(void)
{
- if (register_chrdev(USB_MAJOR, "usb", &usb_fops)) {
+ int error;
+
+ error = register_chrdev(USB_MAJOR, "usb", &usb_fops);
+ if (error) {
err("unable to get major %d for usb devices", USB_MAJOR);
err("unable to get major %d for usb devices", USB_MAJOR);
- return -EBUSY;
+ goto out;
+ }
+
+ error = class_register(&usb_class);
+ if (error) {
+ err("class_register failed for usb devices");
+ unregister_chrdev(USB_MAJOR, "usb");
+ goto out;
}
devfs_mk_dir("usb");
}
devfs_mk_dir("usb");
- class_register(&usb_class);
- return 0;
+
+out:
+ return error;
}
void usb_major_cleanup(void)
}
void usb_major_cleanup(void)