]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nvme: only allow entering LIVE from CONNECTING state
authorDaniel Wagner <wagi@kernel.org>
Fri, 14 Feb 2025 08:02:03 +0000 (09:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Mar 2025 19:54:20 +0000 (12:54 -0700)
[ Upstream commit d2fe192348f93fe3a0cb1e33e4aba58e646397f4 ]

The fabric transports and also the PCI transport are not entering the
LIVE state from NEW or RESETTING. This makes the state machine more
restrictive and allows to catch not supported state transitions, e.g.
directly switching from RESETTING to LIVE.

Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Daniel Wagner <wagi@kernel.org>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/core.c

index 8da50df56b07958389747ecfa18f774e53da94b7..a950aa780d1f63eb6986621c1fc12cbf9a433515 100644 (file)
@@ -562,8 +562,6 @@ bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
        switch (new_state) {
        case NVME_CTRL_LIVE:
                switch (old_state) {
-               case NVME_CTRL_NEW:
-               case NVME_CTRL_RESETTING:
                case NVME_CTRL_CONNECTING:
                        changed = true;
                        fallthrough;