• Johan Hovold's avatar
    USB: fix urb-poison imbalance · 68a2bed1
    Johan Hovold authored
    The calls to usb_poison_urb and usb_unpoison_urb are expected to be
    balanced. However, if an urb that has not yet been submitted is
    poisoned, its reject counter will not be increased as its ep-field is
    NULL. A consecutive call to unpoison will thus in fact poison the urb
    as its reject counter will be decremented to a negative value,
    effectively preventing the urb from being submitted.
    
    Note that there are currently no in-kernel drivers affected by this.
    
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    68a2bed1
urb.c 30 KB