On Wed, Feb 03, 2016 at 12:51:12PM -0500, Joe Lawrence wrote:
> xhci_find_next_ext_cap doesn't check for PCI hotplug removal and may use
> the PCI master abort bit pattern (~0) to calculate a new PCI address
> offset to read/write. The has lead to reproducable crashes when testing
> surprise removal during device initialization on a Stratus platform, at
> least after commit d5ddcdf4d672 ("xhci: rework xhci extended capability
> list parsing functions").
>
> Signed-off-by: Joe Lawrence <[email protected]>
> ---
>
> Patch based on Mathias's for-usb-linus tree as it addresses a crashing
> bug present in the current release candidate.
>
> The crash is repeatable on a Stratus platform when injecting hardware
> faults to induce xHCI host controller hotplug during driver
> initialization. If a PCI read in xhci_find_next_ext_cap returns the
> master abort pattern, quirk_usb_handoff_xhci may start using a bogus
> ext_cap_offset to start searching more bogus PCI addresses.
>
> Tested over a few overnights (previously crash occurred on first test
> pass everytime).
>
> drivers/usb/host/xhci-ext-caps.h | 4 ++++
> 1 file changed, 4 insertions(+)
I need an ack from Mathias before I can take this...
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html