···666768/* Bitmask marking allocated devices from 0 to EM28XX_MAXBOARDS - 1 */69-static unsigned long em28xx_devused;7071struct em28xx_hash_table {72 unsigned long hash;···2885 usb_put_dev(dev->udev);28862887 /* Mark device as unused */2888- clear_bit(dev->devno, &em28xx_devused);28892890 mutex_unlock(&dev->lock);2891};···30943095 /* Check to see next free device and mark as used */3096 do {3097- nr = find_first_zero_bit(&em28xx_devused, EM28XX_MAXBOARDS);3098 if (nr >= EM28XX_MAXBOARDS) {3099 /* No free device slots */3100 printk(DRIVER_NAME ": Supports only %i em28xx boards.\n",···3102 retval = -ENOMEM;3103 goto err_no_slot;3104 }3105- } while (test_and_set_bit(nr, &em28xx_devused));31063107 /* Don't register audio interfaces */3108 if (interface->altsetting[0].desc.bInterfaceClass == USB_CLASS_AUDIO) {···3355 kfree(dev);33563357err:3358- clear_bit(nr, &em28xx_devused);33593360err_no_slot:3361 usb_put_dev(udev);
···666768/* Bitmask marking allocated devices from 0 to EM28XX_MAXBOARDS - 1 */69+DECLARE_BITMAP(em28xx_devused, EM28XX_MAXBOARDS);7071struct em28xx_hash_table {72 unsigned long hash;···2885 usb_put_dev(dev->udev);28862887 /* Mark device as unused */2888+ clear_bit(dev->devno, em28xx_devused);28892890 mutex_unlock(&dev->lock);2891};···30943095 /* Check to see next free device and mark as used */3096 do {3097+ nr = find_first_zero_bit(em28xx_devused, EM28XX_MAXBOARDS);3098 if (nr >= EM28XX_MAXBOARDS) {3099 /* No free device slots */3100 printk(DRIVER_NAME ": Supports only %i em28xx boards.\n",···3102 retval = -ENOMEM;3103 goto err_no_slot;3104 }3105+ } while (test_and_set_bit(nr, em28xx_devused));31063107 /* Don't register audio interfaces */3108 if (interface->altsetting[0].desc.bInterfaceClass == USB_CLASS_AUDIO) {···3355 kfree(dev);33563357err:3358+ clear_bit(nr, em28xx_devused);33593360err_no_slot:3361 usb_put_dev(udev);