From 3f0b7169ba44db7e8729d013866c174673684e6a Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Thu, 26 Apr 2012 18:41:14 +0000 Subject: [PATCH] Fix incorrect state check in the debug trap reported by Bart Van Assche git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4238 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_targ.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index 5f586870d..c8ab521ae 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -882,16 +882,18 @@ out: #ifdef CONFIG_SCST_EXTRACHECKS /* * At this point either data_len must be initialized, or cmd - * completed (with an error). + * completed (with an error) and correct state set. */ if (unlikely((cmd->data_len == SCST_DEF_DATA_LEN)) && - (!cmd->completed || ((cmd->state <= SCST_CMD_STATE_REAL_EXEC) && - (cmd->state != SCST_CMD_STATE_PREPROCESSING_DONE)))) { + (!cmd->completed || + (((cmd->state <= SCST_CMD_STATE_PRE_XMIT_RESP) || + (cmd->state >= SCST_CMD_STATE_LAST_ACTIVE)) && + (cmd->state != SCST_CMD_STATE_PREPROCESSING_DONE)))) { PRINT_CRIT_ERROR("Not initialized data_len for going to " - "execute command (cmd %p, data_len %d, completed %d, " - "state %d)", cmd, cmd->data_len, cmd->completed, - cmd->state); - WARN_ON(1); + "execute command or bad state (cmd %p, data_len %d, " + "completed %d, state %d)", cmd, cmd->data_len, + cmd->completed, cmd->state); + sBUG(); goto out_hw_error; } #endif