xhci: Use correct SLOT ID when handling a reset device command
authorMathias Nyman <mathias.nyman@linux.intel.com>
Tue, 24 Jun 2014 14:14:40 +0000 (17:14 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Jul 2014 18:18:23 +0000 (11:18 -0700)
commita82d63ba320abc0e13b8354227918db3785c968c
tree38ad7fd732aacf0df5e181a62ee44e1ebff031fe
parent5b827636a4492d98c6cb66f68c567cd45f683264
xhci: Use correct SLOT ID when handling a reset device command

commit 6fcfb0d682a8212d321a6131adc94daf0905992a upstream.

Command completion events normally include command completion status,
SLOT_ID, and a pointer to the original command. Reset device command
completion SLOT_ID may be zero according to xhci specs 4.6.11.

VIA controllers set the SLOT_ID to zero, triggering a WARN_ON in the
command completion handler.

Use the SLOT ID found from the original command instead.

This patch should be applied to stable kernels since 3.13 that contain
the commit 20e7acb13ff48fbc884d5918c3697c27de63922a
"xhci: use completion event's slot id rather than dig it out of command"

Reported-by: Saran Neti <sarannmr@gmail.com>
Tested-by: Saran Neti <sarannmr@gmail.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c