Skip to content
Commit 9aa09d2f authored by Karsten Wiese's avatar Karsten Wiese Committed by Greg Kroah-Hartman
Browse files

USB: EHCI: slow down ITD reuse



Currently ITDs are immediately recycled whenever their URB completes.
However, EHCI hardware can sometimes remember some ITD state.  This
means that when the ITD is reused before end-of-frame it may sometimes
cause the hardware to reference bogus state.

This patch defers reusing such ITDs by moving them into a new ehci member
cached_itd_list. ITDs resting in cached_itd_list are moved back into their
stream's free_list once scan_periodic() detects that the active frame has
elapsed.

This makes the snd_usb_us122l driver (in kernel since .28) work right
when it's hooked up through EHCI.

[ dbrownell@users.sourceforge.net: comment fixups ]

Signed-off-by: default avatarKarsten Wiese <fzu@wemgehoertderstaat.de>
Tested-by: default avatarPhilippe Carriere <philippe-f.carriere@wanadoo.fr>
Tested-by: default avatarFederico Briata <federicobriata@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 9a6e184c
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment