• Todd E Brandt's avatar
    USB: separate usb_address0 mutexes for each bus · 6fecd4f2
    Todd E Brandt authored
    This patch creates a separate instance of the usb_address0 mutex for each USB
    bus, and attaches it to the usb_bus device struct. This allows devices on
    separate buses to be enumerated in parallel; saving time.
    
    In the current code, there is a single, global instance of the usb_address0
    mutex which is used for all devices on all buses. This isn't completely
    necessary, as this mutex is only needed to prevent address0 collisions for
    devices on the *same* bus (usb 2.0 spec, sec 4.6.1). This superfluous coverage
    can cause additional delay in system resume on systems with multiple hosts
    (up to several seconds depending on what devices are attached).
    Signed-off-by: default avatarTodd Brandt <todd.e.brandt@linux.intel.com>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6fecd4f2
hub.c 158 KB