summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@nxp.com>2019-06-17 09:49:07 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-07-10 09:56:31 +0200
commit9a7435e1a5b94c8970a82254c27004dcaa8c440c (patch)
tree4b710c1806fcb4bda9c2d8cb8da4d1d156387b27 /security
parent9efccd7745a1d659954cc5a0f6226cac2c4a1036 (diff)
usb: chipidea: udc: workaround for endpoint conflict issue
commit c19dffc0a9511a7d7493ec21019aefd97e9a111b upstream. An endpoint conflict occurs when the USB is working in device mode during an isochronous communication. When the endpointA IN direction is an isochronous IN endpoint, and the host sends an IN token to endpointA on another device, then the OUT transaction may be missed regardless the OUT endpoint number. Generally, this occurs when the device is connected to the host through a hub and other devices are connected to the same hub. The affected OUT endpoint can be either control, bulk, isochronous, or an interrupt endpoint. After the OUT endpoint is primed, if an IN token to the same endpoint number on another device is received, then the OUT endpoint may be unprimed (cannot be detected by software), which causes this endpoint to no longer respond to the host OUT token, and thus, no corresponding interrupt occurs. There is no good workaround for this issue, the only thing the software could do is numbering isochronous IN from the highest endpoint since we have observed most of device number endpoint from the lowest. Cc: <stable@vger.kernel.org> #v3.14+ Cc: Fabio Estevam <festevam@gmail.com> Cc: Greg KH <gregkh@linuxfoundation.org> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Cc: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions