Commit 439e85c1 authored by Matthew R. Ochs's avatar Matthew R. Ochs Committed by James Bottomley

cxlflash: Correct naming of limbo state and waitq

Limbo is not an accurate representation of this state and is
also not consistent with the terminology that other drivers
use to represent this concept. Rename the state and and its
associated waitq to 'reset'.
Signed-off-by: default avatarMatthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: default avatarManoj N. Kumar <manoj@linux.vnet.ibm.com>
Reviewed-by: default avatarBrian King <brking@linux.vnet.ibm.com>
Reviewed-by: default avatarDaniel Axtens <dja@axtens.net>
Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent 0a27ae51
...@@ -79,7 +79,7 @@ enum cxlflash_init_state { ...@@ -79,7 +79,7 @@ enum cxlflash_init_state {
enum cxlflash_state { enum cxlflash_state {
STATE_NORMAL, /* Normal running state, everything good */ STATE_NORMAL, /* Normal running state, everything good */
STATE_LIMBO, /* Limbo running state, trying to reset/recover */ STATE_RESET, /* Reset state, trying to reset/recover */
STATE_FAILTERM /* Failed/terminating state, error out users/threads */ STATE_FAILTERM /* Failed/terminating state, error out users/threads */
}; };
...@@ -125,7 +125,7 @@ struct cxlflash_cfg { ...@@ -125,7 +125,7 @@ struct cxlflash_cfg {
wait_queue_head_t tmf_waitq; wait_queue_head_t tmf_waitq;
bool tmf_active; bool tmf_active;
wait_queue_head_t limbo_waitq; wait_queue_head_t reset_waitq;
enum cxlflash_state state; enum cxlflash_state state;
}; };
......
...@@ -382,8 +382,8 @@ static int cxlflash_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scp) ...@@ -382,8 +382,8 @@ static int cxlflash_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scp)
spin_unlock_irqrestore(&cfg->tmf_waitq.lock, lock_flags); spin_unlock_irqrestore(&cfg->tmf_waitq.lock, lock_flags);
switch (cfg->state) { switch (cfg->state) {
case STATE_LIMBO: case STATE_RESET:
dev_dbg_ratelimited(&cfg->dev->dev, "%s: device in limbo!\n", dev_dbg_ratelimited(&cfg->dev->dev, "%s: device is in reset!\n",
__func__); __func__);
rc = SCSI_MLQUEUE_HOST_BUSY; rc = SCSI_MLQUEUE_HOST_BUSY;
goto out; goto out;
...@@ -479,8 +479,8 @@ static int cxlflash_eh_device_reset_handler(struct scsi_cmnd *scp) ...@@ -479,8 +479,8 @@ static int cxlflash_eh_device_reset_handler(struct scsi_cmnd *scp)
if (unlikely(rcr)) if (unlikely(rcr))
rc = FAILED; rc = FAILED;
break; break;
case STATE_LIMBO: case STATE_RESET:
wait_event(cfg->limbo_waitq, cfg->state != STATE_LIMBO); wait_event(cfg->reset_waitq, cfg->state != STATE_RESET);
if (cfg->state == STATE_NORMAL) if (cfg->state == STATE_NORMAL)
break; break;
/* fall through */ /* fall through */
...@@ -519,7 +519,7 @@ static int cxlflash_eh_host_reset_handler(struct scsi_cmnd *scp) ...@@ -519,7 +519,7 @@ static int cxlflash_eh_host_reset_handler(struct scsi_cmnd *scp)
switch (cfg->state) { switch (cfg->state) {
case STATE_NORMAL: case STATE_NORMAL:
cfg->state = STATE_LIMBO; cfg->state = STATE_RESET;
scsi_block_requests(cfg->host); scsi_block_requests(cfg->host);
cxlflash_mark_contexts_error(cfg); cxlflash_mark_contexts_error(cfg);
rcr = cxlflash_afu_reset(cfg); rcr = cxlflash_afu_reset(cfg);
...@@ -528,11 +528,11 @@ static int cxlflash_eh_host_reset_handler(struct scsi_cmnd *scp) ...@@ -528,11 +528,11 @@ static int cxlflash_eh_host_reset_handler(struct scsi_cmnd *scp)
cfg->state = STATE_FAILTERM; cfg->state = STATE_FAILTERM;
} else } else
cfg->state = STATE_NORMAL; cfg->state = STATE_NORMAL;
wake_up_all(&cfg->limbo_waitq); wake_up_all(&cfg->reset_waitq);
scsi_unblock_requests(cfg->host); scsi_unblock_requests(cfg->host);
break; break;
case STATE_LIMBO: case STATE_RESET:
wait_event(cfg->limbo_waitq, cfg->state != STATE_LIMBO); wait_event(cfg->reset_waitq, cfg->state != STATE_RESET);
if (cfg->state == STATE_NORMAL) if (cfg->state == STATE_NORMAL)
break; break;
/* fall through */ /* fall through */
...@@ -705,7 +705,7 @@ static void cxlflash_wait_for_pci_err_recovery(struct cxlflash_cfg *cfg) ...@@ -705,7 +705,7 @@ static void cxlflash_wait_for_pci_err_recovery(struct cxlflash_cfg *cfg)
struct pci_dev *pdev = cfg->dev; struct pci_dev *pdev = cfg->dev;
if (pci_channel_offline(pdev)) if (pci_channel_offline(pdev))
wait_event_timeout(cfg->limbo_waitq, wait_event_timeout(cfg->reset_waitq,
!pci_channel_offline(pdev), !pci_channel_offline(pdev),
CXLFLASH_PCI_ERROR_RECOVERY_TIMEOUT); CXLFLASH_PCI_ERROR_RECOVERY_TIMEOUT);
} }
...@@ -2304,7 +2304,7 @@ static int cxlflash_probe(struct pci_dev *pdev, ...@@ -2304,7 +2304,7 @@ static int cxlflash_probe(struct pci_dev *pdev,
cfg->mcctx = NULL; cfg->mcctx = NULL;
init_waitqueue_head(&cfg->tmf_waitq); init_waitqueue_head(&cfg->tmf_waitq);
init_waitqueue_head(&cfg->limbo_waitq); init_waitqueue_head(&cfg->reset_waitq);
INIT_WORK(&cfg->work_q, cxlflash_worker_thread); INIT_WORK(&cfg->work_q, cxlflash_worker_thread);
cfg->lr_state = LINK_RESET_INVALID; cfg->lr_state = LINK_RESET_INVALID;
...@@ -2396,7 +2396,7 @@ static pci_ers_result_t cxlflash_pci_error_detected(struct pci_dev *pdev, ...@@ -2396,7 +2396,7 @@ static pci_ers_result_t cxlflash_pci_error_detected(struct pci_dev *pdev,
switch (state) { switch (state) {
case pci_channel_io_frozen: case pci_channel_io_frozen:
cfg->state = STATE_LIMBO; cfg->state = STATE_RESET;
scsi_block_requests(cfg->host); scsi_block_requests(cfg->host);
drain_ioctls(cfg); drain_ioctls(cfg);
rc = cxlflash_mark_contexts_error(cfg); rc = cxlflash_mark_contexts_error(cfg);
...@@ -2408,7 +2408,7 @@ static pci_ers_result_t cxlflash_pci_error_detected(struct pci_dev *pdev, ...@@ -2408,7 +2408,7 @@ static pci_ers_result_t cxlflash_pci_error_detected(struct pci_dev *pdev,
return PCI_ERS_RESULT_NEED_RESET; return PCI_ERS_RESULT_NEED_RESET;
case pci_channel_io_perm_failure: case pci_channel_io_perm_failure:
cfg->state = STATE_FAILTERM; cfg->state = STATE_FAILTERM;
wake_up_all(&cfg->limbo_waitq); wake_up_all(&cfg->reset_waitq);
scsi_unblock_requests(cfg->host); scsi_unblock_requests(cfg->host);
return PCI_ERS_RESULT_DISCONNECT; return PCI_ERS_RESULT_DISCONNECT;
default: default:
...@@ -2455,7 +2455,7 @@ static void cxlflash_pci_resume(struct pci_dev *pdev) ...@@ -2455,7 +2455,7 @@ static void cxlflash_pci_resume(struct pci_dev *pdev)
dev_dbg(dev, "%s: pdev=%p\n", __func__, pdev); dev_dbg(dev, "%s: pdev=%p\n", __func__, pdev);
cfg->state = STATE_NORMAL; cfg->state = STATE_NORMAL;
wake_up_all(&cfg->limbo_waitq); wake_up_all(&cfg->reset_waitq);
scsi_unblock_requests(cfg->host); scsi_unblock_requests(cfg->host);
} }
......
...@@ -100,7 +100,7 @@ void cxlflash_stop_term_user_contexts(struct cxlflash_cfg *cfg) ...@@ -100,7 +100,7 @@ void cxlflash_stop_term_user_contexts(struct cxlflash_cfg *cfg)
dev_dbg(dev, "%s: Wait for user contexts to quiesce...\n", dev_dbg(dev, "%s: Wait for user contexts to quiesce...\n",
__func__); __func__);
wake_up_all(&cfg->limbo_waitq); wake_up_all(&cfg->reset_waitq);
ssleep(1); ssleep(1);
} }
} }
...@@ -1233,11 +1233,11 @@ static int check_state(struct cxlflash_cfg *cfg) ...@@ -1233,11 +1233,11 @@ static int check_state(struct cxlflash_cfg *cfg)
retry: retry:
switch (cfg->state) { switch (cfg->state) {
case STATE_LIMBO: case STATE_RESET:
dev_dbg(dev, "%s: Limbo state, going to wait...\n", __func__); dev_dbg(dev, "%s: Reset state, going to wait...\n", __func__);
up_read(&cfg->ioctl_rwsem); up_read(&cfg->ioctl_rwsem);
rc = wait_event_interruptible(cfg->limbo_waitq, rc = wait_event_interruptible(cfg->reset_waitq,
cfg->state != STATE_LIMBO); cfg->state != STATE_RESET);
down_read(&cfg->ioctl_rwsem); down_read(&cfg->ioctl_rwsem);
if (unlikely(rc)) if (unlikely(rc))
break; break;
...@@ -1578,10 +1578,10 @@ static int recover_context(struct cxlflash_cfg *cfg, struct ctx_info *ctxi) ...@@ -1578,10 +1578,10 @@ static int recover_context(struct cxlflash_cfg *cfg, struct ctx_info *ctxi)
* quite possible for this routine to act as the kernel's EEH detection * quite possible for this routine to act as the kernel's EEH detection
* source (MMIO read of mbox_r). Because of this, there is a window of * source (MMIO read of mbox_r). Because of this, there is a window of
* time where an EEH might have been detected but not yet 'serviced' * time where an EEH might have been detected but not yet 'serviced'
* (callback invoked, causing the device to enter limbo state). To avoid * (callback invoked, causing the device to enter reset state). To avoid
* looping in this routine during that window, a 1 second sleep is in place * looping in this routine during that window, a 1 second sleep is in place
* between the time the MMIO failure is detected and the time a wait on the * between the time the MMIO failure is detected and the time a wait on the
* limbo wait queue is attempted via check_state(). * reset wait queue is attempted via check_state().
* *
* Return: 0 on success, -errno on failure * Return: 0 on success, -errno on failure
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment