diff options
author | Himanshu Madhani <himanshu.madhani@qlogic.com> | 2014-09-25 10:14:50 (GMT) |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-09-25 12:25:07 (GMT) |
commit | dd9c4eff77fc7412fa79a1a05a2dec2469cc8ca8 (patch) | |
tree | 30dd0d40c8eed803149bf2783b95b5165ea1ba1c | |
parent | d29fb7360ee61ec02257e9c49848c9d2a05345a0 (diff) | |
download | linux-dd9c4eff77fc7412fa79a1a05a2dec2469cc8ca8.tar.xz |
qla2xxx: fix crash due to task mgmt cmd type
tcm_qla2xxx_get_task_tag incorrectly assume command is
qla_tgt_cmd. Add check to see if it's a scsi cmd or
task mgmt command.
Signed-off-by: Quinn Tran <quinn.tran@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | drivers/scsi/qla2xxx/tcm_qla2xxx.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index 09d2931..9f95407 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -515,8 +515,13 @@ static void tcm_qla2xxx_set_default_node_attrs(struct se_node_acl *nacl) static u32 tcm_qla2xxx_get_task_tag(struct se_cmd *se_cmd) { - struct qla_tgt_cmd *cmd = container_of(se_cmd, - struct qla_tgt_cmd, se_cmd); + struct qla_tgt_cmd *cmd; + + /* check for task mgmt cmd */ + if (se_cmd->se_cmd_flags & SCF_SCSI_TMR_CDB) + return 0xffffffff; + + cmd = container_of(se_cmd, struct qla_tgt_cmd, se_cmd); return cmd->tag; } |