diff options
author | Sagi Grimberg <sagi@grimberg.me> | 2019-07-10 18:31:31 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2019-07-10 18:36:16 +0200 |
commit | 420dc733f980246f2179e0144f9cedab9ad4a91e (patch) | |
tree | bc7212cd4ffbe70e7226b432ff12816f7ac7f478 /drivers/nvme | |
parent | nvme-fc: fix module unloads while lports still pending (diff) | |
download | linux-420dc733f980246f2179e0144f9cedab9ad4a91e.tar.xz linux-420dc733f980246f2179e0144f9cedab9ad4a91e.zip |
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 <jonathan.derrick@intel.com>
Tested-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme')
-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) { |