From 7beb6f61595222cd680dedeca9fdd777503e8f2f Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sun, 4 Nov 2018 04:38:24 +0000 Subject: [PATCH] Merge r7468 from trunk git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.3.x@7721 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla2x00t/qla2x00-target/qla2x00t.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/qla2x00t/qla2x00-target/qla2x00t.c b/qla2x00t/qla2x00-target/qla2x00t.c index ca8993748..e163fa24c 100644 --- a/qla2x00t/qla2x00-target/qla2x00t.c +++ b/qla2x00t/qla2x00-target/qla2x00t.c @@ -3451,10 +3451,7 @@ out_unlock: spin_unlock_irqrestore(&ha->hardware_lock, flags); if (do_tgt_cmd_done) { - if (!ha_locked && !in_interrupt()) - scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_DIRECT); - else - scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_TASKLET); + scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_THREAD); /* !! At this point cmd could be already freed !! */ } @@ -3528,10 +3525,7 @@ out_unlock: spin_unlock_irqrestore(&ha->hardware_lock, flags); if (do_tgt_cmd_done) { - if (!ha_locked && !in_interrupt()) - scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_DIRECT); - else - scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_TASKLET); + scst_tgt_cmd_done(&cmd->scst_cmd, SCST_CONTEXT_THREAD); /* !! At this point cmd could be already freed !! */ } @@ -3803,10 +3797,17 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *vha, uint32_t handle, TRACE_ENTRY(); +#if 1 /* + * We can't do anything better, because DLM PR sync code calls + * mutex_lock() on this path + */ + context = SCST_CONTEXT_THREAD; +#else #ifdef CONFIG_QLA_TGT_DEBUG_WORK_IN_THREAD context = SCST_CONTEXT_THREAD; #else context = SCST_CONTEXT_TASKLET; +#endif #endif TRACE(TRACE_DEBUG|TRACE_SCSI, "qla2x00t(%ld): handle(ctio %p "