aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2013-10-05 17:09:15 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-11 19:58:01 -0400
commit059239adfe577866115cd5270eba40e3cac33f8a (patch)
treeebeda4730820ebae0af9c1b73e0e2d9a516fcfed /drivers/usb/core
parent29824c167bead38986d5e8d33008680c62478777 (diff)
drivers: usb: core: hcd.c: converted busmap from struct to bitmap
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>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r--drivers/usb/core/hcd.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 149cdf129293..6ec8dda31118 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -40,6 +40,7 @@
40#include <linux/platform_device.h> 40#include <linux/platform_device.h>
41#include <linux/workqueue.h> 41#include <linux/workqueue.h>
42#include <linux/pm_runtime.h> 42#include <linux/pm_runtime.h>
43#include <linux/types.h>
43 44
44#include <linux/usb.h> 45#include <linux/usb.h>
45#include <linux/usb/hcd.h> 46#include <linux/usb/hcd.h>
@@ -92,10 +93,7 @@ EXPORT_SYMBOL_GPL (usb_bus_list);
92 93
93/* used when allocating bus numbers */ 94/* used when allocating bus numbers */
94#define USB_MAXBUS 64 95#define USB_MAXBUS 64
95struct usb_busmap { 96static DECLARE_BITMAP(busmap, USB_MAXBUS);
96 unsigned long busmap[USB_MAXBUS / (8*sizeof (unsigned long))];
97};
98static struct usb_busmap busmap;
99 97
100/* used when updating list of hcds */ 98/* used when updating list of hcds */
101DEFINE_MUTEX(usb_bus_list_lock); /* exported only for usbfs */ 99DEFINE_MUTEX(usb_bus_list_lock); /* exported only for usbfs */
@@ -941,12 +939,12 @@ static int usb_register_bus(struct usb_bus *bus)
941 int busnum; 939 int busnum;
942 940
943 mutex_lock(&usb_bus_list_lock); 941 mutex_lock(&usb_bus_list_lock);
944 busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1); 942 busnum = find_next_zero_bit(busmap, USB_MAXBUS, 1);
945 if (busnum >= USB_MAXBUS) { 943 if (busnum >= USB_MAXBUS) {
946 printk (KERN_ERR "%s: too many buses\n", usbcore_name); 944 printk (KERN_ERR "%s: too many buses\n", usbcore_name);
947 goto error_find_busnum; 945 goto error_find_busnum;
948 } 946 }
949 set_bit (busnum, busmap.busmap); 947 set_bit(busnum, busmap);
950 bus->busnum = busnum; 948 bus->busnum = busnum;
951 949
952 /* Add it to the local list of buses */ 950 /* Add it to the local list of buses */
@@ -987,7 +985,7 @@ static void usb_deregister_bus (struct usb_bus *bus)
987 985
988 usb_notify_remove_bus(bus); 986 usb_notify_remove_bus(bus);
989 987
990 clear_bit (bus->busnum, busmap.busmap); 988 clear_bit(bus->busnum, busmap);
991} 989}
992 990
993/** 991/**