mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
29824c167b
commit
059239adfe
|
@ -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);
|
||||||
|
|
||||||
/* 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)
|
||||||
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)
|
||||||
|
|
||||||
usb_notify_remove_bus(bus);
|
usb_notify_remove_bus(bus);
|
||||||
|
|
||||||
clear_bit (bus->busnum, busmap.busmap);
|
clear_bit(bus->busnum, busmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue