diff options
| author | Sagi Grimberg <[email protected]> | 2019-07-10 09:31:31 -0700 |
|---|---|---|
| committer | Christoph Hellwig <[email protected]> | 2019-07-10 09:36:16 -0700 |
| commit | 420dc733f980246f2179e0144f9cedab9ad4a91e (patch) | |
| tree | bc7212cd4ffbe70e7226b432ff12816f7ac7f478 | |
| parent | 4c73cbdff1119d088ed16d63def59ad32b11b18f (diff) | |
nvme: fix regression upon hot device removal and insertion
When we validate the new controller id, we want to skip
controllers that are either deleting or dead. Fix the check
to do that and not on the newly added controller.
Fixes: 1b1031ca63b2 ("nvme: validate cntlid during controller initialisation")
Reported-by: Jon Derrick <[email protected]>
Tested-by: Jon Derrick <[email protected]>
Signed-off-by: Sagi Grimberg <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
| -rw-r--r-- | drivers/nvme/host/core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index f4340dc1d399..3077cd4d75bf 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2416,8 +2416,8 @@ static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, lockdep_assert_held(&nvme_subsystems_lock); list_for_each_entry(tmp, &subsys->ctrls, subsys_entry) { - if (ctrl->state == NVME_CTRL_DELETING || - ctrl->state == NVME_CTRL_DEAD) + if (tmp->state == NVME_CTRL_DELETING || + tmp->state == NVME_CTRL_DEAD) continue; if (tmp->cntlid == ctrl->cntlid) { |