Commit 562be61b authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Greg Kroah-Hartman
Browse files

usb: core: Remove the useless struct usb_devmap which is just a bitmap



struct usb_devmap is really just a bitmap. No need to have a dedicated
structure for that.

Simplify code and use DECLARE_BITMAP() directly instead.

Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/1d818575ff7a1e8317674aecf761ee23c89fdc84.1714815990.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8bbe44ce
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -866,7 +866,7 @@ static int usb_rh_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
 */
static void usb_bus_init (struct usb_bus *bus)
{
	memset (&bus->devmap, 0, sizeof(struct usb_devmap));
	memset(&bus->devmap, 0, sizeof(bus->devmap));

	bus->devnum_next = 1;

@@ -962,7 +962,7 @@ static int register_root_hub(struct usb_hcd *hcd)

	usb_dev->devnum = devnum;
	usb_dev->bus->devnum_next = devnum + 1;
	set_bit (devnum, usb_dev->bus->devmap.devicemap);
	set_bit(devnum, usb_dev->bus->devmap);
	usb_set_device_state(usb_dev, USB_STATE_ADDRESS);

	mutex_lock(&usb_bus_idr_lock);
+4 −5
Original line number Diff line number Diff line
@@ -2207,13 +2207,12 @@ static void choose_devnum(struct usb_device *udev)
	mutex_lock(&bus->devnum_next_mutex);

	/* Try to allocate the next devnum beginning at bus->devnum_next. */
	devnum = find_next_zero_bit(bus->devmap.devicemap, 128,
			bus->devnum_next);
	devnum = find_next_zero_bit(bus->devmap, 128, bus->devnum_next);
	if (devnum >= 128)
		devnum = find_next_zero_bit(bus->devmap.devicemap, 128, 1);
		devnum = find_next_zero_bit(bus->devmap, 128, 1);
	bus->devnum_next = (devnum >= 127 ? 1 : devnum + 1);
	if (devnum < 128) {
		set_bit(devnum, bus->devmap.devicemap);
		set_bit(devnum, bus->devmap);
		udev->devnum = devnum;
	}
	mutex_unlock(&bus->devnum_next_mutex);
@@ -2222,7 +2221,7 @@ static void choose_devnum(struct usb_device *udev)
static void release_devnum(struct usb_device *udev)
{
	if (udev->devnum > 0) {
		clear_bit(udev->devnum, udev->bus->devmap.devicemap);
		clear_bit(udev->devnum, udev->bus->devmap);
		udev->devnum = -1;
	}
}
+1 −6
Original line number Diff line number Diff line
@@ -440,11 +440,6 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size,

/* ----------------------------------------------------------------------- */

/* USB device number allocation bitmap */
struct usb_devmap {
	unsigned long devicemap[128 / (8*sizeof(unsigned long))];
};

/*
 * Allocated per bus (tree of devices) we have:
 */
@@ -472,7 +467,7 @@ struct usb_bus {
					 * round-robin allocation */
	struct mutex devnum_next_mutex; /* devnum_next mutex */

	struct usb_devmap devmap;	/* device address allocation map */
	DECLARE_BITMAP(devmap, 128);	/* USB device number allocation bitmap */
	struct usb_device *root_hub;	/* Root hub */
	struct usb_bus *hs_companion;	/* Companion EHCI bus, if any */