xHCI: add cmd_ring_state
authorElric Fu <elricfu1@gmail.com>
Wed, 27 Jun 2012 08:30:57 +0000 (16:30 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 17 Oct 2012 02:48:25 +0000 (03:48 +0100)
commitdf045069dcc9242c4de84d2a117af313f7b00853
tree056f0b0c0c523b516f090a06c860af7f1303d64a
parentb89d0660eba658f9afa5ddeabc742e07bcaabea7
xHCI: add cmd_ring_state

commit c181bc5b5d5c79b71203cd10cef97f802fb6f9c1 upstream.

Adding cmd_ring_state for command ring. It helps to verify
the current command ring state for controlling the command
ring operations.

This patch should be backported to kernels as old as 3.0.  The commit
7ed603ecf8b68ab81f4c83097d3063d43ec73bb8 "xhci: Add an assertion to
check for virt_dev=0 bug." papers over the NULL pointer dereference that
I now believe is related to a timed out Set Address command.  This (and
the four patches that follow it) contain the real fix that also allows
VIA USB 3.0 hubs to consistently re-enumerate during the plug/unplug
stress tests.

Signed-off-by: Elric Fu <elricfu1@gmail.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Miroslav Sabljic <miroslav.sabljic@avl.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h