提交 059239ad 编写于 作者: M Matthias Beyer 提交者: Greg Kroah-Hartman

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: NMatthias Beyer <mail@beyermatthias.de>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 29824c16
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/workqueue.h> #include <linux/workqueue.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/types.h>
#include <linux/usb.h> #include <linux/usb.h>
#include <linux/usb/hcd.h> #include <linux/usb/hcd.h>
...@@ -92,10 +93,7 @@ EXPORT_SYMBOL_GPL (usb_bus_list); ...@@ -92,10 +93,7 @@ EXPORT_SYMBOL_GPL (usb_bus_list);
/* used when allocating bus numbers */ /* used when allocating bus numbers */
#define USB_MAXBUS 64 #define USB_MAXBUS 64
struct usb_busmap { static DECLARE_BITMAP(busmap, USB_MAXBUS);
unsigned long busmap[USB_MAXBUS / (8*sizeof (unsigned long))];
};
static struct usb_busmap busmap;
/* used when updating list of hcds */ /* used when updating list of hcds */
DEFINE_MUTEX(usb_bus_list_lock); /* exported only for usbfs */ DEFINE_MUTEX(usb_bus_list_lock); /* exported only for usbfs */
...@@ -941,12 +939,12 @@ static int usb_register_bus(struct usb_bus *bus) ...@@ -941,12 +939,12 @@ static int usb_register_bus(struct usb_bus *bus)
int busnum; int busnum;
mutex_lock(&usb_bus_list_lock); 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) { if (busnum >= USB_MAXBUS) {
printk (KERN_ERR "%s: too many buses\n", usbcore_name); printk (KERN_ERR "%s: too many buses\n", usbcore_name);
goto error_find_busnum; goto error_find_busnum;
} }
set_bit (busnum, busmap.busmap); set_bit(busnum, busmap);
bus->busnum = busnum; bus->busnum = busnum;
/* Add it to the local list of buses */ /* Add it to the local list of buses */
...@@ -987,7 +985,7 @@ static void usb_deregister_bus (struct usb_bus *bus) ...@@ -987,7 +985,7 @@ static void usb_deregister_bus (struct usb_bus *bus)
usb_notify_remove_bus(bus); usb_notify_remove_bus(bus);
clear_bit (bus->busnum, busmap.busmap); clear_bit(bus->busnum, busmap);
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册