aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2013-03-01 10:51:15 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-20 12:58:51 -0700
commit4fba7d11ee0b6dd35635c0654d424c74325a6133 (patch)
treee138400019aca9b8fc0effd9f15b4e1359a9f653 /drivers/staging
parent581964efbe9480abd67e53a35bab14a9d8232116 (diff)
downloadkernel_samsung_smdk4412-4fba7d11ee0b6dd35635c0654d424c74325a6133.zip
kernel_samsung_smdk4412-4fba7d11ee0b6dd35635c0654d424c74325a6133.tar.gz
kernel_samsung_smdk4412-4fba7d11ee0b6dd35635c0654d424c74325a6133.tar.bz2
USB: EHCI: don't check DMA values in QH overlays
commit feca7746d5d9e84b105a613b7f3b6ad00d327372 upstream. This patch (as1661) fixes a rather obscure bug in ehci-hcd. In a couple of places, the driver compares the DMA address stored in a QH's overlay region with the address of a particular qTD, in order to see whether that qTD is the one currently being processed by the hardware. (If it is then the status in the QH's overlay region is more up-to-date than the status in the qTD, and if it isn't then the overlay's value needs to be adjusted when the QH is added back to the active schedule.) However, DMA address in the overlay region isn't always valid. It sometimes will contain a stale value, which may happen by coincidence to be equal to a qTD's DMA address. Instead of checking the DMA address, we should check whether the overlay region is active and valid. The patch tests the ACTIVE bit in the overlay, and clears this bit when the overlay becomes invalid (which happens when the currently-executing URB is unlinked). This is the second part of a fix for the regression reported at: https://bugs.launchpad.net/bugs/1088733 Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Reported-by: Joseph Salisbury <joseph.salisbury@canonical.com> Reported-and-tested-by: Stephen Thirlwall <sdt@dr.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
0 files changed, 0 insertions, 0 deletions