nvme-pci: Fix EEH failure on ppc
authorWen Xiong <wenxiong@linux.vnet.ibm.com>
Thu, 15 Feb 2018 20:05:10 +0000 (14:05 -0600)
committerKeith Busch <keith.busch@intel.com>
Thu, 1 Mar 2018 16:34:14 +0000 (09:34 -0700)
commit651438bb0af5213f1f70d66e75bf11d08cb5537a
tree775c5d3742d78fcbcd51e2ee82137cddf21ee017
parent468f098734ab095b72d8af26bcd4bcb2ed31a3be
nvme-pci: Fix EEH failure on ppc

Triggering PPC EEH detection and handling requires a memory mapped read
failure. The NVMe driver removed the periodic health check MMIO, so
there's no early detection mechanism to trigger the recovery. Instead,
the detection now happens when the nvme driver handles an IO timeout
event. This takes the pci channel offline, so we do not want the driver
to proceed with escalating its own recovery efforts that may conflict
with the EEH handler.

This patch ensures the driver will observe the channel was set to offline
after a failed MMIO read and resets the IO timer so the EEH handler has
a chance to recover the device.

Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com>
[updated change log]
Signed-off-by: Keith Busch <keith.busch@intel.com>
drivers/nvme/host/pci.c