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 <joe.lawrence@xxxxxxxxxxx> > --- > > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html