]> 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>
Thu, 10 Apr 2025 12:31:51 +0000 (14:31 +0200)
[ 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 7f744aa4d120c65c1d0ff89824fae34738a0f1c4..6748532c776b8659db50fbe001bc1dff2c7b323f 100644 (file)
@@ -444,8 +444,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;