drivers: usb: core: hcd.c: converted busmap from struct to bitmap
authorMatthias Beyer <mail@beyermatthias.de>
Sat, 5 Oct 2013 21:09:15 +0000 (23:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Oct 2013 23:58:01 +0000 (16:58 -0700)
The DECLARE_BITMAP macro should be used for declaring this bitmap.
This commit converts the busmap from a struct to a simple (static)
bitmap, using the DECLARE_BITMAP macro from linux/types.h.

Please review, as I'm new to kernel development, I don't know if this
has any hidden side effects!

Suggested by joe@perches.com

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hcd.c

index 149cdf129293960d06edd8d021e709b0cb32da5c..6ec8dda31118e8fdec4ef5cfea0eb2f755939f70 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/platform_device.h>
 #include <linux/workqueue.h>
 #include <linux/pm_runtime.h>
+#include <linux/types.h>
 
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
@@ -92,10 +93,7 @@ EXPORT_SYMBOL_GPL (usb_bus_list);
 
 /* used when allocating bus numbers */
 #define USB_MAXBUS             64
-struct usb_busmap {
-       unsigned long busmap[USB_MAXBUS / (8*sizeof (unsigned long))];
-};
-static struct usb_busmap busmap;
+static DECLARE_BITMAP(busmap, USB_MAXBUS);
 
 /* used when updating list of hcds */
 DEFINE_MUTEX(usb_bus_list_lock);       /* exported only for usbfs */
@@ -941,12 +939,12 @@ static int usb_register_bus(struct usb_bus *bus)
        int busnum;
 
        mutex_lock(&usb_bus_list_lock);
-       busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1);
+       busnum = find_next_zero_bit(busmap, USB_MAXBUS, 1);
        if (busnum >= USB_MAXBUS) {
                printk (KERN_ERR "%s: too many buses\n", usbcore_name);
                goto error_find_busnum;
        }
-       set_bit (busnum, busmap.busmap);
+       set_bit(busnum, busmap);
        bus->busnum = busnum;
 
        /* Add it to the local list of buses */
@@ -987,7 +985,7 @@ static void usb_deregister_bus (struct usb_bus *bus)
 
        usb_notify_remove_bus(bus);
 
-       clear_bit (bus->busnum, busmap.busmap);
+       clear_bit(bus->busnum, busmap);
 }
 
 /**