]> git.itanic.dy.fi Git - linux-stable/commit
usb: xhci: fix uninitialized completion when USB3 port got wrong status
authorAaron Ma <aaron.ma@canonical.com>
Fri, 9 Nov 2018 15:21:20 +0000 (17:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Nov 2018 16:31:09 +0000 (08:31 -0800)
commit958c0bd86075d4ef1c936998deefe1947e539240
tree815cc40d2afdaace28a1d38d9f085e6a4fb72561
parentd9193efba84fe4c4aa22a569fade5e6ca971f8af
usb: xhci: fix uninitialized completion when USB3 port got wrong status

Realtek USB3.0 Card Reader [0bda:0328] reports wrong port status on
Cannon lake PCH USB3.1 xHCI [8086:a36d] after resume from S3,
after clear port reset it works fine.

Since this device is registered on USB3 roothub at boot,
when port status reports not superspeed, xhci_get_port_status will call
an uninitialized completion in bus_state[0].
Kernel will hang because of NULL pointer.

Restrict the USB2 resume status check in USB2 roothub to fix hang issue.

Cc: stable@vger.kernel.org
Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-hub.c
drivers/usb/host/xhci-ring.c