Thomas Tai
bd91b56cb3
PCI/AER: Work around use-after-free in pcie_do_fatal_recovery()
...
When an fatal error is received by a non-bridge device, the device is
removed, and pci_stop_and_remove_bus_device() deallocates the device
structure. The freed device structure is used by subsequent code to send
uevents and print messages.
Hold a reference on the device until we're finished using it. This is not
an ideal fix because pcie_do_fatal_recovery() should not use the device at
all after removing it, but that's too big a project for right now.
Fixes: 7e9084b367 ("PCI/AER: Handle ERR_FATAL with removal and re-enumeration of devices")
Signed-off-by: Thomas Tai <thomas.tai@oracle.com >
[bhelgaas: changelog, reduce get/put coverage]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com >
2018-07-26 12:13:04 -05:00
..
2018-06-14 16:25:43 +09:00
2018-06-06 13:49:25 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-13 07:24:18 -07:00
2018-06-04 10:58:12 -07:00
2018-06-15 07:24:58 +09:00
2018-05-30 15:45:01 +02:00
2018-06-12 18:28:00 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-15 18:10:01 -03:00
2018-06-12 16:19:22 -07:00
2018-06-06 18:39:49 -07:00
2018-06-13 07:24:18 -07:00
2018-06-07 10:23:33 -07:00
2018-06-12 16:19:22 -07:00
2018-06-08 17:21:52 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 08:51:42 +09:00
2018-06-12 16:19:22 -07:00
2018-05-25 18:23:56 +02:00
2018-06-12 16:19:22 -07:00
2018-06-17 05:25:18 +09:00
2018-06-15 18:10:01 -03:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-11 12:09:19 -07:00
2018-06-12 16:19:22 -07:00
2018-06-14 16:21:46 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-12 18:28:00 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-07 10:23:33 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-17 05:25:18 +09:00
2018-06-12 18:28:00 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-14 16:21:46 +09:00
2018-06-14 16:21:46 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 18:28:00 -07:00
2018-06-29 15:09:00 -05:00
2018-06-12 16:19:22 -07:00
2018-06-12 18:28:00 -07:00
2018-06-05 16:20:22 -07:00
2018-06-08 15:16:44 -07:00
2018-06-15 08:11:05 -06:00
2018-06-12 16:19:22 -07:00
2018-06-12 18:28:00 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-04 10:58:12 -07:00
2018-06-15 18:10:01 -03:00
2018-07-26 12:13:04 -05:00
2018-06-12 16:19:22 -07:00
2018-05-29 16:38:16 +01:00
2018-06-06 18:39:49 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-07 12:34:37 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-05-28 23:05:11 -04:00
2018-06-14 16:25:43 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 07:55:25 +09:00
2018-06-12 18:28:00 -07:00
2018-06-04 12:35:03 -07:00
2018-06-11 07:20:17 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-14 16:35:32 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 07:55:25 +09:00
2018-06-15 18:11:26 -03:00
2018-06-12 16:19:22 -07:00
2018-06-15 18:10:01 -03:00
2018-06-12 16:19:22 -07:00
2018-06-12 18:28:00 -07:00
2018-06-15 07:31:07 +09:00
2018-06-12 16:19:22 -07:00
2018-06-15 07:31:07 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 13:11:26 -07:00
2018-06-16 06:35:02 +09:00
2018-06-17 05:25:18 +09:00
2018-06-12 16:19:22 -07:00
2018-06-16 06:35:02 +09:00
2018-06-05 16:20:22 -07:00
2018-06-12 12:56:02 -07:00
2018-06-12 16:19:22 -07:00
2018-06-06 17:27:14 -07:00