From 32e45721e3031321fa1bc85d7f7cd7cd0e5be17e Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Tue, 19 Feb 2008 12:02:14 +0000 Subject: [PATCH] Pass proper expected length for INQUIRY command git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@294 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla_isp/linux/isp_scst.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/qla_isp/linux/isp_scst.c b/qla_isp/linux/isp_scst.c index 46d720cac..b3aa59902 100644 --- a/qla_isp/linux/isp_scst.c +++ b/qla_isp/linux/isp_scst.c @@ -374,6 +374,7 @@ tasklet_rx_cmds(unsigned long data) tmd_xact_t *xact; struct scst_cmd *scst_cmd; scst_data_direction dir; + int len; rx_loop: spin_lock_irq(&bp->tmds_lock); @@ -441,8 +442,12 @@ rx_loop: dir = SCST_DATA_WRITE; } else if (tmd->cd_flags & CDF_DATA_IN) { dir = SCST_DATA_READ; + } + len = tmd->cd_totlen; + if (tmd->cd_cdb[0] == INQUIRY) { + len = min(len, tmd->cd_cdb[4]); } - scst_cmd_set_expected(scst_cmd, dir, tmd->cd_totlen); + scst_cmd_set_expected(scst_cmd, dir, len); scst_cmd_init_done(scst_cmd, SCST_CONTEXT_TASKLET); spin_unlock_irq(&bp->tmds_lock);