• Karsten Wiese's avatar
    USB: EHCI: Fix isochronous URB leak · 508db8c9
    Karsten Wiese authored
    ehci-hcd uses usb_get_urb() and usb_put_urb() in an unbalanced way causing
    isochronous URB's kref.counts incrementing once per usb_submit_urb() call.
    The culprit is *usb being set to NULL when usb_put_urb() is called after URB
    is given back.
    Due to other fixes there is no need for ehci-hcd to deal with usb_get_urb()
    nor usb_put_urb() anymore, so patch removes their usages in ehci-hcd.
    Patch also makes ehci_to_hcd(ehci)->self.bandwidth_allocated adjust, if a
    stream finishes.
    Signed-off-by: default avatarKarsten Wiese <fzu@wemgehoertderstaat.de>
    Cc: David Brownell <david-b@pacbell.net>
    Cc: stable <stable@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    508db8c9
ehci-sched.c 60.3 KB