[PATCH] nvme: fix PCIe subsystem reset controller state transition
Keith Busch
kbusch at kernel.org
Wed Jan 14 07:21:49 PST 2026
On Wed, Jan 14, 2026 at 12:54:13PM +0530, Nilay Shroff wrote:
> The commit d2fe192348f9 ("nvme: only allow entering LIVE from CONNECTING
> state") disallows controller state transitions directly from RESETTING
> to LIVE. However, the NVMe PCIe subsystem reset path relies on this
> transition to recover the controller on PowerPC (PPC) systems.
>
> On PPC systems, issuing a subsystem reset causes a temporary loss of
> communication with the NVMe adapter. A subsequent PCIe MMIO read then
> triggers EEH recovery, which restores the PCIe link and brings the
> controller back online. For EEH recovery to proceed correctly, the
> controller must transition back to the LIVE state.
>
> Due to the changes introduced by commit d2fe192348f9 ("nvme: only allow
> entering LIVE from CONNECTING state"), the controller can no longer
> transition directly from RESETTING to LIVE. As a result, EEH recovery
> exits prematurely, leaving the controller stuck in the RESETTING state.
>
> Fix this by explicitly transitioning the controller state from RESETTING
> to CONNECTING and then to LIVE. This satisfies the updated state
> transition rules and allows the controller to be successfully recovered
> on PPC systems following a PCIe subsystem reset.
Thanks, applied to nvme-6.19.
More information about the Linux-nvme
mailing list