Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eb579f5811ddbc052c8d6b3bba38dd4e5148cf7b
Commit:     eb579f5811ddbc052c8d6b3bba38dd4e5148cf7b
Parent:     5234ce1b02ae2574098ebe9839dcf241076a9367
Author:     Inaky Perez-Gonzalez <[EMAIL PROTECTED]>
AuthorDate: Tue Jul 31 20:33:59 2007 -0700
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 14:55:04 2007 -0700

    usb: cleanup usb_register_bus() and hook up sysfs group
    
    This path cleans the exit paths of usb_register_bus() [to use a goto
    schema], maximum line length (keeping it under ~75).
    
    Signed-off-by: Inaky Perez-Gonzalez <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/core/hcd.c |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 875e247..a5a46a5 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -792,27 +792,23 @@ static void usb_bus_init (struct usb_bus *bus)
  */
 static int usb_register_bus(struct usb_bus *bus)
 {
+       int result = -E2BIG;
        int busnum;
 
        mutex_lock(&usb_bus_list_lock);
        busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1);
-       if (busnum < USB_MAXBUS) {
-               set_bit (busnum, busmap.busmap);
-               bus->busnum = busnum;
-       } else {
+       if (busnum >= USB_MAXBUS) {
                printk (KERN_ERR "%s: too many buses\n", usbcore_name);
-               mutex_unlock(&usb_bus_list_lock);
-               return -E2BIG;
+               goto error_find_busnum;
        }
-
+       set_bit (busnum, busmap.busmap);
+       bus->busnum = busnum;
        bus->class_dev = class_device_create(usb_host_class, NULL, MKDEV(0,0),
-                                            bus->controller, "usb_host%d", 
busnum);
-       if (IS_ERR(bus->class_dev)) {
-               clear_bit(busnum, busmap.busmap);
-               mutex_unlock(&usb_bus_list_lock);
-               return PTR_ERR(bus->class_dev);
-       }
-
+                                            bus->controller, "usb_host%d",
+                                            busnum);
+       result = PTR_ERR(bus->class_dev);
+       if (IS_ERR(bus->class_dev))
+               goto error_create_class_dev;
        class_set_devdata(bus->class_dev, bus);
 
        /* Add it to the local list of buses */
@@ -821,8 +817,15 @@ static int usb_register_bus(struct usb_bus *bus)
 
        usb_notify_add_bus(bus);
 
-       dev_info (bus->controller, "new USB bus registered, assigned bus number 
%d\n", bus->busnum);
+       dev_info (bus->controller, "new USB bus registered, assigned bus "
+                 "number %d\n", bus->busnum);
        return 0;
+
+error_create_class_dev:
+       clear_bit(busnum, busmap.busmap);
+error_find_busnum:
+       mutex_unlock(&usb_bus_list_lock);
+       return result;
 }
 
 /**
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to