usb: core: Remove the useless struct usb_devmap which is just a bitmap
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 4 May 2024 09:47:05 +0000 (11:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 May 2024 16:23:03 +0000 (18:23 +0200)
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: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/1d818575ff7a1e8317674aecf761ee23c89fdc84.1714815990.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hcd.c
drivers/usb/core/hub.c
include/linux/usb.h

index c0e005670d67d1b9cf0b8cdb03d12635148772d6..e3366f4d82b963e551222da16ea8982a725697f3 100644 (file)
@@ -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);
index e9fec90ed6f8e3bb9f667445e01c507d3428ad5e..bd2e57f90e71361bc8d94ca6d5bb8e5b61eef9df 100644 (file)
@@ -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;
        }
 }
index 9e52179872a50dd3598afc606b4c524caa51ed1d..1913a13833f2020316d3d3e393b53ae88723fe18 100644 (file)
@@ -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 */