Joe Lawrence
89140fdaf1
xhci: harden xhci_find_next_ext_cap against device removal
...
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").
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.
Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-02-04 17:00:10 -08:00
..
2015-12-13 19:20:27 -08:00
2015-12-01 14:48:26 -08:00
2015-03-18 13:28:35 +01:00
2015-12-01 10:44:19 -08:00
2014-12-14 16:10:09 -08:00
2015-08-14 16:50:36 -07:00
2015-07-22 16:44:35 -07:00
2015-01-09 12:31:53 -08:00
2015-12-04 08:29:54 -08:00
2015-08-14 16:50:36 -07:00
2015-12-01 14:26:33 -08:00
2015-12-01 14:57:12 -08:00
2014-11-07 09:01:50 -08:00
2014-11-07 09:01:50 -08:00
2013-12-08 18:06:46 -08:00
2015-10-04 10:45:08 +01:00
2015-02-03 15:28:31 -08:00
2015-10-04 10:47:13 +01:00
2015-01-09 12:31:53 -08:00
2015-01-09 12:31:53 -08:00
2013-12-08 18:06:46 -08:00
2015-12-01 10:44:19 -08:00
2015-01-09 09:58:49 -08:00
2015-01-09 12:31:53 -08:00
2015-01-09 12:31:53 -08:00
2015-10-04 10:51:58 +01:00
2015-08-05 12:37:21 -07:00
2015-08-18 10:05:23 -07:00
2015-05-08 01:43:44 +02:00
2015-01-09 12:31:53 -08:00
2013-08-12 11:43:48 -07:00
2014-12-14 16:10:09 -08:00
2015-01-09 12:31:53 -08:00
2015-12-01 10:44:19 -08:00
2014-07-09 16:13:03 -07:00
2015-12-22 17:12:56 -06:00
2015-12-22 17:12:56 -06:00
2015-12-22 17:12:56 -06:00
2015-12-04 08:25:58 -08:00
2015-12-22 17:12:56 -06:00
2015-11-09 15:11:24 -08:00
2015-10-16 23:46:22 -07:00
2015-10-04 10:51:58 +01:00
2014-11-03 15:26:15 -08:00
2013-12-03 10:34:33 -08:00
2015-04-03 19:03:18 +02:00
2013-12-03 10:34:33 -08:00
2015-05-10 16:01:11 +02:00
2013-07-23 16:35:17 -07:00
2015-04-03 19:03:18 +02:00
2013-07-24 14:43:05 -07:00
2016-01-22 17:30:52 -08:00
2015-12-01 10:45:51 -08:00
2015-10-28 10:30:17 +09:00
2015-12-04 08:19:55 -08:00
2015-01-09 12:31:53 -08:00
2015-05-10 16:01:11 +02:00
2014-12-14 16:10:09 -08:00
2015-12-04 08:29:54 -08:00
2015-04-03 19:03:17 +02:00
2015-01-09 12:31:53 -08:00
2014-07-18 16:34:07 -07:00
2015-10-24 19:53:53 -07:00
2013-12-08 18:06:46 -08:00
2014-12-14 16:10:09 -08:00
2014-05-03 17:58:46 -04:00
2015-05-11 21:42:25 +05:30
2015-01-09 12:31:53 -08:00
2013-12-08 18:06:46 -08:00
2015-12-01 14:36:29 -08:00
2015-07-22 14:46:50 -07:00
2015-01-25 21:01:13 +08:00
2013-12-08 18:06:46 -08:00
2015-01-09 12:31:53 -08:00
2015-10-04 10:51:58 +01:00
2014-09-23 21:35:50 -07:00
2015-01-09 12:31:53 -08:00
2015-07-22 14:49:42 -07:00
2014-11-03 15:38:17 -08:00
2015-12-04 08:25:58 -08:00
2015-12-01 10:45:51 -08:00
2014-05-27 16:25:32 -07:00
2015-04-10 13:45:27 +02:00
2012-07-30 17:25:12 -07:00
2014-01-08 15:01:39 -08:00
2015-04-10 13:45:27 +02:00
2013-07-24 14:43:05 -07:00
2015-06-08 14:26:22 -07:00
2015-12-04 08:29:54 -08:00
2015-12-23 10:41:31 -05:00
2015-01-09 12:31:53 -08:00
2014-07-09 16:16:07 -07:00
2013-01-24 13:42:09 -08:00
2015-04-10 13:45:27 +02:00
2013-12-04 16:58:47 -08:00
2015-10-04 10:51:58 +01:00
2015-12-01 14:26:33 -08:00
2015-10-04 10:34:17 +01:00
2016-02-04 17:00:10 -08:00
2015-12-13 19:20:27 -08:00
2015-12-01 14:26:33 -08:00
2016-02-03 14:01:47 -08:00
2016-02-03 14:01:47 -08:00
2015-12-01 10:45:51 -08:00
2014-05-27 15:40:40 -07:00
2014-05-27 15:40:40 -07:00
2016-02-03 14:01:47 -08:00
2016-02-03 14:01:47 -08:00
2015-12-01 10:45:51 -08:00
2015-12-01 10:45:51 -08:00
2015-12-01 10:45:51 -08:00
2016-02-03 13:55:42 -08:00
2014-10-03 14:44:45 -07:00
2015-04-07 12:31:55 -04:00
2016-02-03 14:01:47 -08:00
2016-02-03 14:01:47 -08:00