• Thomas Pugliese's avatar
    usb: wusbcore: fix deadlock in wusbhc_gtk_rekey · 471e42ad
    Thomas Pugliese authored
    When multiple wireless USB devices are connected and one of the devices
    disconnects, the host will distribute a new group key to the remaining
    devicese using wusbhc_gtk_rekey.  wusbhc_gtk_rekey takes the
    wusbhc->mutex and holds it while it submits a URB to set the new key.
    This causes a deadlock in wa_urb_enqueue when it calls a device lookup
    helper function that takes the same lock.
    
    This patch changes wusbhc_gtk_rekey to submit a work item to set the GTK
    so that the URB is submitted without holding wusbhc->mutex.
    Signed-off-by: default avatarThomas Pugliese <thomas.pugliese@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    471e42ad
wusbhc.h 16.3 KB